diff --git a/build/clean.js b/build/clean.js new file mode 100644 index 00000000..a43054c1 --- /dev/null +++ b/build/clean.js @@ -0,0 +1,39 @@ +/** + * Only keeps "contractName", "abi", "sourcePath", "compiler", "networks", + * "schemaVersion" and "updatedAt". + */ + +var glob = require("glob"); +var fs = require("fs"); + +const networks = ["testnet", "devnet", "localnet"]; + +for (const network of networks) { + glob(`./build/${network}/*.json`, function (err, files) { // read the folder or folders if you want: example json/**/*.json + if (err) { + console.log("cannot read the folder, something goes wrong with glob", err); + } + files.forEach(function (file) { + fs.readFile(file, 'utf8', function (err, data) { // Read each file + if (err) { + console.log("cannot read the file, something goes wrong with the file", err); + } + var obj = JSON.parse(data); + const newObj = { + contractName: obj.contractName, + abi: obj.abi, + sourcePath: obj.sourcePath, + compiler: obj.compiler, + networks: obj.networks, + schemaVersion: obj.schemaVersion, + updatedAt: obj.updatedAt, + } + + fs.writeFile(file, JSON.stringify(newObj, null, " "), function (err) { + if (err) return console.log(err); + console.log(` Updated \x1b[33m${file}\x1b[0m.`); + }); + }); + }); + }); +} \ No newline at end of file diff --git a/build/devnet/BTCShifter.json b/build/devnet/BTCShifter.json index f1ce9b09..effb31da 100644 --- a/build/devnet/BTCShifter.json +++ b/build/devnet/BTCShifter.json @@ -418,10933 +418,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_nextMintAuthority\",\"type\":\"address\"}],\"name\":\"updateMintAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextTokenOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFee\",\"type\":\"uint16\"}],\"name\":\"updateFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"}],\"name\":\"hashForSignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"status\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"shiftOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintAuthority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextShiftID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"shiftIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_signedMessageHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_feeRecipient\",\"type\":\"address\"},{\"name\":\"_mintAuthority\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"}],\"name\":\"LogShiftIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_indexedTo\",\"type\":\"bytes\"}],\"name\":\"LogShiftOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"The following are not necessary for deploying BTCShifter or ZECShifter contracts, but are used to track deployments.\",\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"params\":{\"_amount\":\"The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)\",\"_nHash\":\"(nonce hash) The hash of the nonce, amount and pHash.\",\"_pHash\":\"(payload hash) The hash of the payload associated with the shift.\",\"_sig\":\"The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\"}},\"shiftOut(bytes,uint256)\":{\"params\":{\"_amount\":\"The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)\",\"_to\":\"The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateFee(uint16)\":{\"params\":{\"_nextFee\":\"The new fee for minting and burning.\"}},\"updateFeeRecipient(address)\":{\"params\":{\"_nextFeeRecipient\":\"The address to start paying fees to.\"}},\"updateMintAuthority(address)\":{\"params\":{\"_nextMintAuthority\":\"The address to start paying fees to.\"}}}},\"userdoc\":{\"methods\":{\"claimTokenOwnership()\":{\"notice\":\"Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function.\"},\"hashForSignature(bytes32,uint256,address,bytes32)\":{\"notice\":\"hashForSignature hashes the parameters so that they can be signed.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"notice\":\"shiftIn mints tokens after taking a fee for the `_feeRecipient`. \"},\"shiftOut(bytes,uint256)\":{\"notice\":\"shiftOut burns tokens after taking a fee for the `_feeRecipient`. \"},\"transferTokenOwnership(address)\":{\"notice\":\"Allow the owner to update the owner of the ERC20Shifted token.\"},\"updateFee(uint16)\":{\"notice\":\"Allow the owner to update the fee. \"},\"updateFeeRecipient(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"updateMintAuthority(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"verifySignature(bytes32,bytes)\":{\"notice\":\"verifySignature checks the the provided signature matches the provided parameters.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":\"BTCShifter\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":{\"keccak256\":\"0xd80cfaf2e5adebbe3d12b5053be769787a5d3aac7a813d985de9aff2ae77046f\",\"urls\":[\"bzzr://241ffce5caac59f3015d47630239593349a700e43976d003256afea8363be7dd\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol\":{\"keccak256\":\"0x2466e251b3ab27d508ac2f0de523e03cfaf00b6c4f2e4fa382db28940f4bc8d8\",\"urls\":[\"bzzr://b80cf1a642065ce8b1172527564947598e8d1af6640f9dfcbf36040e701497fc\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x7b0d1ee8869ddd89976df0d781d16f24e49db9528fcc49c31b164b0d3c936bda\",\"urls\":[\"bzzr://dcd07ff226fff30843e7b28c069270451a9bd4a49809e78c42e17a23c52c72e4\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405260008054600160a01b60ff0219167402000000000000000000000000000000000000000017815560055534801561003a57600080fd5b5060405160808062001ad48339810180604052608081101561005b57600080fd5b5080516020820151604080840151606090940151600080546001600160a01b0319163317808255925194959394919286928692869286926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b038087166001600160a01b03199283161790925560028054928516929091169190911790556003805461ffff83167401000000000000000000000000000000000000000002600160a01b61ffff021990911617905561013583610142602090811b901c565b5050505050505050610263565b61015061025260201b60201c565b6101bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661023057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331490565b61186180620002736000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a723058203b860899b433d4379f0efafa085f8907f9a784429baa160d4b469e5d33e9653f0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a723058203b860899b433d4379f0efafa085f8907f9a784429baa160d4b469e5d33e9653f0029", - "sourceMap": "7606:211:9:-;;;552:24;;;-1:-1:-1;;;;;;552:24:9;;;;;1402:30;;7643:172;5:2:-1;;;;30:1;27;20:12;5:2;7643:172:9;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7643:172:9;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;7643:172:9;;;;;;;;;;;;;;-1:-1:-1;;;;;724:6:36;;;;;657;691:40;;657:6;;691:40;2108:5:9;:14;;-1:-1:-1;;;;;2108:14:9;;;-1:-1:-1;;;;;;2108:14:9;;;;;;;2132:13;:30;;;;;;;;;;;;;;;2172:3;:10;;;;;;;-1:-1:-1;;;;;;2172:10:9;;;;;;2192:33;2211:13;2192:18;;;;;:33;;:::i;:::-;1998:234;;;;7643:172;;;;7606:211;;3267:274;1018:9:36;:7;;;:9;;:::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1165:90:36:-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;7606:211:9:-;;;;;;;", - "deployedSourceMap": "7606:211:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7606:211:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2997:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2997:125:9;-1:-1:-1;;;;;2997:125:9;;:::i;:::-;;2502:77;;;:::i;2664:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2664:187:9;-1:-1:-1;;;;;2664:187:9;;:::i;3667:84::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3667:84:9;;;;:::i;1089:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1089:27:9;;;;;;;;;;;;;;7263:209;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7263:209:9;;;;;;;;-1:-1:-1;;;;;7263:209:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1250:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1250:37:9;;:::i;:::-;;;;;;;;;;;;;;;;;;552:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1599:137:36;;;:::i;6166:716:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6166:716:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6166:716:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6166:716:9;;;;;;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;6166:716:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9;;;-1:-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9:i;814:77:36:-;;;:::i;1165:90::-;;;:::i;812:28:9:-;;;:::i;1402:30::-;;;:::i;4304:1383::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4304:1383:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4304:1383:9;;;;;;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;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4304:1383:9;;-1:-1:-1;4304:1383:9;;-1:-1:-1;;;;;4304:1383:9:i;6995:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6995:179:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6995:179:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6995:179:9;;;;;;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;6995:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6995:179:9;;-1:-1:-1;6995:179:9;;-1:-1:-1;;;;;6995:179:9:i;1176:17::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3267:274;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3267:274:9;-1:-1:-1;;;;;3267:274:9;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;703:25:9:-;;;:::i;2997:125::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3081:13:9;:34;;-1:-1:-1;;;;;;3081:34:9;-1:-1:-1;;;;;3081:34:9;;;;;;;;;;2997:125::o;2502:77::-;2550:5;;;;;;;;;-1:-1:-1;;;;;2550:5:9;-1:-1:-1;;;;;2550:20:9;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2550:22:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2550:22:9;;;;2502:77::o;2664:187::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;2748:5:9;;:49;;;-1:-1:-1;;;;;2748:49:9;;-1:-1:-1;;;;;2748:49:9;;;;;;;;;:5;;;;;:23;;:49;;;;;:5;;:49;;;;;;;:5;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;2748:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2748:49:9;;;;2807:15;-1:-1:-1;;;;;2807:35:9;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2807:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2807:37:9;;;;2664:187;:::o;3667:84::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3730:3:9;:14;;;;;;-1:-1:-1;;;3730:14:9;-1:-1:-1;;3730:14:9;;;;;;;;;3667:84::o;1089:27::-;;;-1:-1:-1;;;;;1089:27:9;;:::o;7263:209::-;7444:5;;7408:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7444:5:9;;;7408:56;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7408:56:9;;;;;;7398:67;;;;;;7263:209::o;1250:37::-;;;;;;;;;;;;;;;:::o;552:24::-;;;-1:-1:-1;;;552:24:9;;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;6166:716:9:-;6235:7;6409:3;:10;6423:1;6409:15;;6401:47;;;;;-1:-1:-1;;;;;6401:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6535:3;;6500:19;;6522:40;;619:5;;6523:16;;:7;;-1:-1:-1;;;6535:3:9;;;;6523:11;:16::i;:::-;6522:22;:40;:22;:40;:::i;:::-;6572:5;;:31;;;-1:-1:-1;;;;;6572:31:9;;6583:10;6572:31;;;;;;;;;;;;6500:62;;-1:-1:-1;;;;;;6572:5:9;;;;:10;;:31;;;;;:5;;:31;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;6572:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6613:5:9;;6624:12;;6613:37;;;-1:-1:-1;;;;;6613:37:9;;-1:-1:-1;;;;;6624:12:9;;;6613:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;6613:10:9;;-1:-1:-1;6613:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;6613:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6613:37:9;;;;6706:21;6730:24;6742:11;6730:7;:11;;:24;;;;:::i;:::-;6706:48;;6814:3;6769:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6769:49:9;;;;;;;;;;;;;;;;6801:11;;6769:49;6781:3;6786:13;6769:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6769:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:11;:16;;6843:1;6828:16;;;6862:13;-1:-1:-1;;6166:716:9;;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;812:28:9:-;;;-1:-1:-1;;;;;812:28:9;;:::o;1402:30::-;;;;:::o;4304:1383::-;4405:7;4452:25;4480:53;4497:6;4505:7;4514:10;4526:6;4480:16;:53::i;:::-;4551:25;;;;:6;:25;;;;;;4452:81;;-1:-1:-1;4551:25:9;;:34;4543:71;;;;;-1:-1:-1;;;;;4543:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:40;4645:17;4664:4;4629:15;:40::i;:::-;4624:539;;4886:252;;;;;;;;;;;;;;;;;;4969:37;4988:17;4969:18;:37::i;:::-;4886:252;;;;;;;;;;;;;-1:-1:-1;;;;;4886:252:9;;;5062:58;5081:38;5095:17;5114:4;5081:13;:38::i;:::-;5062:18;:58::i;:::-;4886:11;:252::i;:::-;4862:290;;-1:-1:-1;;;;;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:539;5172:25;;;;:6;:25;;;;;:32;;-1:-1:-1;;5172:32:9;5200:4;5172:32;;;5329:3;;5316:40;;619:5;;5317:16;;:7;;5329:3;-1:-1:-1;;;5329:3:9;;;;5317:16;:11;:16;:::i;5316:40::-;5294:62;-1:-1:-1;5366:22:9;5391:24;:7;5294:62;5391:24;:11;:24;:::i;:::-;5425:5;;:38;;;-1:-1:-1;;;;;5425:38:9;;5436:10;5425:38;;;;;;;;;;;;5366:49;;-1:-1:-1;;;;;;5425:5:9;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5425:38:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5473:5:9;;5484:12;;5473:37;;;-1:-1:-1;;;;;5473:37:9;;-1:-1:-1;;;;;5484:12:9;;;5473:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;5473:10:9;;-1:-1:-1;5473:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;5473:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5610:11:9;;5571:51;;;;;;;;5610:11;;-1:-1:-1;5582:10:9;;-1:-1:-1;5571:51:9;;;;;;;;;;5632:11;:16;;5647:1;5632:16;;;5666:14;4304:1383;-1:-1:-1;;;;;;;4304:1383:9:o;6995:179::-;7088:4;7128:39;7142:18;7162:4;7128:13;:39::i;:::-;7111:13;;-1:-1:-1;;;;;7111:56:9;;;:13;;:56;;6995:179;-1:-1:-1;;;6995:179:9:o;1176:17::-;;;-1:-1:-1;;;1176:17:9;;;;;:::o;3267:274::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;-1:-1:-1;;;;;3418:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;703:25:9:-;;;-1:-1:-1;;;;;703:25:9;;:::o;1693:458:35:-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:35;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;;;2069:56:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:35:o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;120:484:17:-;254:42;;;;;;;;;;;-1:-1:-1;;;;;254:42:17;;;;326:21;;336:10;326:21;;;;;;;;;179:13;;236:6;;254:42;179:13;;326:21;;;21:6:-1;;104:10;326:21:17;87:34:-1;135:17;;-1:-1;326:21:17;307:40;;-1:-1:-1;;;;;357:3:17;361:1;357:6;;;;;;;;;;;:12;-1:-1:-1;;;;;357:12:17;;;;;;;;;-1:-1:-1;;;;;379:3:17;383:1;379:6;;;;;;;;;;;:12;-1:-1:-1;;;;;379:12:17;;;;;;;;-1:-1:-1;406:6:17;401:169;422:2;418:1;:6;401:169;;;458:8;490:1;478:5;484:1;478:8;;;;;;;;;;-1:-1:-1;;;;;478:13:17;;;;472:20;;467:26;;458:36;;;;;;;;;;;;;;;;445:3;451:1;453;451:3;449:1;:5;445:10;;;;;;;;;;;:49;-1:-1:-1;;;;;445:49:17;;;;;;;;;521:8;541:5;547:1;541:8;;;;;;;;;;552:4;541:15;;;535:22;;530:28;;521:38;;;;;;;;;;;;;;;;508:3;514:1;516;514:3;512:1;:5;508:10;;;;;;;;;;;:51;-1:-1:-1;;;;;508:51:17;;;;;;;;-1:-1:-1;426:3:17;;401:169;;;-1:-1:-1;593:3:17;120:484;-1:-1:-1;;;;120:484:17:o;1229:1968:32:-;1307:7;1368:9;:16;1388:2;1368:22;1364:92;;1406:39;;;-1:-1:-1;;;;;1406:39:32;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:92;1806:4;1791:20;;1785:27;1851:4;1836:20;;1830:27;1904:4;1889:20;;1883:27;1522:9;1875:36;2822:66;2809:79;;2805:155;;;2904:45;;-1:-1:-1;;;;;2904:45:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:155;2974:1;:7;;2979:2;2974:7;;:18;;;;;2985:1;:7;;2990:2;2985:7;;2974:18;2970:95;;;3008:46;;-1:-1:-1;;;;;3008:46:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:95;3166:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3166:24:32;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3166:24:32;;-1:-1:-1;;3166:24:32;;;1229:1968;-1:-1:-1;;;;;;;1229:1968:32:o;678:492:17:-;810:42;;;;;;;;;;;-1:-1:-1;;;;;810:42:17;;;;882:21;;892:10;882:21;;;736:13;882:21;;;;;;-1:-1:-1;;;;;785:14:17;;;810:42;736:13;;882:21;;;21:6:-1;;104:10;882:21:17;87:34:-1;135:17;;-1:-1;882:21:17;863:40;;-1:-1:-1;;;;;913:3:17;917:1;913:6;;;;;;;;;;;:12;-1:-1:-1;;;;;913:12:17;;;;;;;;;-1:-1:-1;;;;;935:3:17;939:1;935:6;;;;;;;;;;;:12;-1:-1:-1;;;;;935:12:17;;;;;;;;-1:-1:-1;962:6:17;957:179;978:2;974:1;:6;957:179;;;1014:8;1051:1;1034:5;1040:1;1044:2;1040:6;1034:13;;;;;;;;;;-1:-1:-1;;;;;1034:18:17;;;;1028:25;;1023:31;;1014:41;;;;;;;;;;;;;;;;1001:3;1007:1;1009;1007:3;1005:1;:5;1001:10;;;;;;;;;;;:54;-1:-1:-1;;;;;1001:54:17;;;;;;;;;1082:8;1102:5;1108:1;1112:2;1108:6;1102:13;;;;;;;;;;1118:4;1102:20;;;1096:27;;1091:33;;1082:43;;;;;;;;;;;;;;;;1069:3;1075:1;1077;1075:3;1073:1;:5;1069:10;;;;;;;;;;;:56;-1:-1:-1;;;;;1069:56:17;;;;;;;;-1:-1:-1;982:3:17;;957:179;;1212:180;1317:13;1373:1;1376;1379;1382;1356:28;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1356:28:17;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1356:28:17;;;1342:43;;1212:180;;;;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"../libraries/String.sol\";\nimport \"./ERC20Shifted.sol\";\n\n/// @notice Shifter handles verifying mint and burn requests. A mintAuthority\n/// approves new assets to be minted by providing a digital signature. An owner\n/// of an asset can request for it to be burnt.\ncontract Shifter is Ownable {\n using SafeMath for uint256;\n\n uint8 public version = 2;\n\n uint256 constant BIPS_DENOMINATOR = 10000;\n\n /// @notice Each Shifter token is tied to a specific shifted token.\n ERC20Shifted public token;\n\n /// @notice The mintAuthority is an address that can sign mint requests.\n address public mintAuthority;\n\n /// @dev feeRecipient is assumed to be an address (or a contract) that can \n /// accept erc20 payments it cannot be 0x0.\n /// @notice When tokens are mint or burnt, a portion of the tokens are \n /// forwarded to a fee recipient.\n address public feeRecipient;\n\n /// @notice The minting and burning fee in bips.\n uint16 public fee;\n\n /// @notice Each nHash can only be seen once.\n mapping (bytes32=>bool) public status;\n\n // LogShiftIn and LogShiftOut contain a unique `shiftID` that identifies\n // the mint or burn event.\n uint256 public nextShiftID = 0;\n\n event LogShiftIn(address indexed _to, uint256 _amount, uint256 indexed _shiftID);\n event LogShiftOut(bytes _to, uint256 _amount, uint256 indexed _shiftID, bytes indexed _indexedTo);\n\n /// @param _token The ERC20Shifted this Shifter is responsible for.\n /// @param _feeRecipient The recipient of burning and minting fees.\n /// @param _mintAuthority The address of the key that can sign mint\n /// requests.\n /// @param _fee The amount subtracted each burn and mint request and\n /// forwarded to the feeRecipient. In BIPS.\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee) public {\n token = _token;\n mintAuthority = _mintAuthority;\n fee = _fee;\n updateFeeRecipient(_feeRecipient);\n }\n\n // Public functions ////////////////////////////////////////////////////////\n\n /// @notice Claims ownership of the token passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called.\n /// Anyone can call this function.\n function claimTokenOwnership() public {\n token.claimOwnership();\n }\n\n /// @notice Allow the owner to update the owner of the ERC20Shifted token.\n function transferTokenOwnership(Shifter _nextTokenOwner) public onlyOwner {\n token.transferOwnership(address(_nextTokenOwner));\n _nextTokenOwner.claimTokenOwnership();\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextMintAuthority The address to start paying fees to.\n function updateMintAuthority(address _nextMintAuthority) public onlyOwner {\n mintAuthority = _nextMintAuthority;\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextFeeRecipient The address to start paying fees to.\n function updateFeeRecipient(address _nextFeeRecipient) public onlyOwner {\n // ShiftIn and ShiftOut will fail if the feeRecipient is 0x0\n require(_nextFeeRecipient != address(0x0), \"fee recipient cannot be 0x0\");\n\n feeRecipient = _nextFeeRecipient;\n }\n\n /// @notice Allow the owner to update the fee.\n ///\n /// @param _nextFee The new fee for minting and burning.\n function updateFee(uint16 _nextFee) public onlyOwner {\n fee = _nextFee;\n }\n\n /// @notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _pHash (payload hash) The hash of the payload associated with the\n /// shift.\n /// @param _amount The amount of the token being shifted int, in its\n /// smallest value. (e.g. satoshis for BTC)\n /// @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n /// @param _sig The signature of the hash of the following values:\n /// (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\n function shiftIn(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes memory _sig) public returns (uint256) {\n // Verify signature\n bytes32 signedMessageHash = hashForSignature(_pHash, _amount, msg.sender, _nHash);\n require(status[signedMessageHash] == false, \"nonce hash already spent\");\n if (!verifySignature(signedMessageHash, _sig)) {\n // Return a detailed string containing the hash and recovered\n // signer. This is a costly operation but is only run in the revert\n // branch.\n revert(\n String.add4(\n \"invalid signature - hash: \",\n String.fromBytes32(signedMessageHash),\n \", signer: \",\n String.fromAddress(ECDSA.recover(signedMessageHash, _sig))\n )\n );\n }\n status[signedMessageHash] = true;\n\n // Mint `amount - fee` for the recipient and mint `fee` for the minter\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n uint256 receivedAmount = _amount.sub(absoluteFee);\n token.mint(msg.sender, receivedAmount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n emit LogShiftIn(msg.sender, receivedAmount, nextShiftID);\n nextShiftID += 1;\n\n return receivedAmount;\n }\n\n /// @notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _to The address to receive the unshifted digital asset. The\n /// format of this address should be of the destination chain.\n /// For example, when shifting out to Bitcoin, _to should be a\n /// Bitcoin address.\n /// @param _amount The amount of the token being shifted out, in its\n /// smallest value. (e.g. satoshis for BTC)\n function shiftOut(bytes memory _to, uint256 _amount) public returns (uint256) {\n // The recipient must not be empty. Better validation is possible,\n // but would need to be customized for each destination ledger.\n require(_to.length != 0, \"to address is empty\");\n\n // Burn full amount and mint fee\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n token.burn(msg.sender, _amount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n uint256 receivedValue = _amount.sub(absoluteFee);\n emit LogShiftOut(_to, receivedValue, nextShiftID, _to);\n nextShiftID += 1;\n\n return receivedValue;\n }\n\n /// @notice verifySignature checks the the provided signature matches the provided\n /// parameters.\n function verifySignature(bytes32 _signedMessageHash, bytes memory _sig) public view returns (bool) {\n return mintAuthority == ECDSA.recover(_signedMessageHash, _sig);\n }\n\n /// @notice hashForSignature hashes the parameters so that they can be signed.\n function hashForSignature(bytes32 _pHash, uint256 _amount, address _to, bytes32 _nHash) public view returns (bytes32) {\n return keccak256(abi.encode(_pHash, _amount, address(token), _to, _nHash));\n }\n}\n\n/// @dev The following are not necessary for deploying BTCShifter or ZECShifter\n/// contracts, but are used to track deployments.\ncontract BTCShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}\n\ncontract ZECShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -11507,82 +581,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T03:55:13.594Z", - "devdoc": { - "details": "The following are not necessary for deploying BTCShifter or ZECShifter contracts, but are used to track deployments.", - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "params": { - "_amount": "The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)", - "_nHash": "(nonce hash) The hash of the nonce, amount and pHash.", - "_pHash": "(payload hash) The hash of the payload associated with the shift.", - "_sig": "The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority." - } - }, - "shiftOut(bytes,uint256)": { - "params": { - "_amount": "The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)", - "_to": "The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address." - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "updateFee(uint16)": { - "params": { - "_nextFee": "The new fee for minting and burning." - } - }, - "updateFeeRecipient(address)": { - "params": { - "_nextFeeRecipient": "The address to start paying fees to." - } - }, - "updateMintAuthority(address)": { - "params": { - "_nextMintAuthority": "The address to start paying fees to." - } - } - } - }, - "userdoc": { - "methods": { - "claimTokenOwnership()": { - "notice": "Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function." - }, - "hashForSignature(bytes32,uint256,address,bytes32)": { - "notice": "hashForSignature hashes the parameters so that they can be signed." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "notice": "shiftIn mints tokens after taking a fee for the `_feeRecipient`. " - }, - "shiftOut(bytes,uint256)": { - "notice": "shiftOut burns tokens after taking a fee for the `_feeRecipient`. " - }, - "transferTokenOwnership(address)": { - "notice": "Allow the owner to update the owner of the ERC20Shifted token." - }, - "updateFee(uint16)": { - "notice": "Allow the owner to update the fee. " - }, - "updateFeeRecipient(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "updateMintAuthority(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "verifySignature(bytes32,bytes)": { - "notice": "verifySignature checks the the provided signature matches the provided parameters." - } - } - } + "updatedAt": "2019-08-02T03:55:13.594Z" } \ No newline at end of file diff --git a/build/devnet/DarknodePayment.json b/build/devnet/DarknodePayment.json index 677fbdaa..4a7ef970 100644 --- a/build/devnet/DarknodePayment.json +++ b/build/devnet/DarknodePayment.json @@ -762,24405 +762,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"previousCycleRewardShare\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pendingTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"darknodeBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_durationSeconds\",\"type\":\"uint256\"}],\"name\":\"updateCycleDuration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"shareCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardClaimed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"unclaimedRewards\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"store\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"updateBlacklister\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"changeCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blacklister\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokenIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleTimeout\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"previousCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"currentCycleRewardPool\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"withdrawMultiple\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ETHEREUM\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_darknodeRegistry\",\"type\":\"address\"},{\"name\":\"_darknodePaymentStore\",\"type\":\"address\"},{\"name\":\"_cycleDurationSeconds\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeWhitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cycle\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_payer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogPaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_payee\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogDarknodeWithdrew\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newCycle\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_lastCycle\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_cycleTimeout\",\"type\":\"uint256\"}],\"name\":\"LogNewCycle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_oldDuration\",\"type\":\"uint256\"}],\"name\":\"LogCycleDurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newBlacklister\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_oldBlacklister\",\"type\":\"address\"}],\"name\":\"LogBlacklisterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogTokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogTokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"blacklist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to blacklist\"}},\"claim(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to claim\"}},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_cycleDurationSeconds\":\"The minimum time before a new cycle can occur in seconds\",\"_darknodePaymentStore\":\"The address of the DarknodePaymentStore contract\",\"_darknodeRegistry\":\"The address of the DarknodeRegistry contract\"}},\"deposit(uint256,address)\":{\"params\":{\"_token\":\"The token address\",\"_value\":\"The amount of token deposit in the token's smallest unit.\"}},\"deregisterToken(address)\":{\"params\":{\"_token\":\"The address of the token to be deregistered.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerToken(address)\":{\"params\":{\"_token\":\"The address of the token to be registered.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferStoreOwnership(address)\":{\"params\":{\"_newOwner\":\"The address to transfer the ownership to.\"}},\"updateBlacklister(address)\":{\"params\":{\"_addr\":\"The new Blacklister contract address.\"}},\"updateCycleDuration(uint256)\":{\"params\":{\"_durationSeconds\":\"The amount of time (in seconds) that should have passed before a new cycle can be called.\"}},\"withdraw(address,address)\":{\"params\":{\"_darknode\":\"The address of the darknode\",\"_token\":\"Which token to transfer\"}}}},\"userdoc\":{\"methods\":{\"blacklist(address)\":{\"notice\":\"Blacklists a darknode from participating in rewards. \"},\"changeCycle()\":{\"notice\":\"Changes the current cycle.\"},\"claim(address)\":{\"notice\":\"Claims the rewards allocated to the darknode last cycle and increments the darknode balances. Whitelists the darknode if it hasn't already been whitelisted. If a darknode does not call claim() then the rewards for the previous cycle is lost. \"},\"claimStoreOwnership()\":{\"notice\":\"Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another DarknodePaymentStore.\"},\"constructor\":\"The contract constructor. Starts the current cycle using the time of deploy. \",\"currentCycleRewardPool(address)\":{\"notice\":\"The current balance of the contract available as reward for the current cycle\"},\"deposit(uint256,address)\":{\"notice\":\"Deposits token into the contract to be paid to the Darknodes \"},\"deregisterToken(address)\":{\"notice\":\"Removes a token from the list of supported tokens. Deregistration is pending until next cycle. \"},\"registerToken(address)\":{\"notice\":\"Adds tokens to be payable. Registration is pending until next cycle. \"},\"transferStoreOwnership(address)\":{\"notice\":\"Allows the contract owner to initiate an ownership transfer of the DarknodePaymentStore. \"},\"updateBlacklister(address)\":{\"notice\":\"Updates the Blacklister contract address. \"},\"updateCycleDuration(uint256)\":{\"notice\":\"Updates cycle duration \"},\"withdraw(address,address)\":{\"notice\":\"Transfers the funds allocated to the darknode to the darknode owner. \"}},\"notice\":\"DarknodePayment is responsible for paying off darknodes for their computation.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol\":\"DarknodePayment\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol\":{\"keccak256\":\"0x392181844a36f9a56b437d62a1cbf938248e6bcc9a1dc831d84c261b7444c405\",\"urls\":[\"bzzr://fc7cd553ee01034cedcce4ba7d17b221d429fd97c48ab6bed5f592cd0020acb0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":{\"keccak256\":\"0x5fa14e396e45b93df54c1641ce8d0d83fa8ac3ec6679bb969b4088360e2f97d5\",\"urls\":[\"bzzr://de076428cc66269df2aa797cee62012ff56c963eeb1dfee77314731f9ea98200\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol\":{\"keccak256\":\"0xb9e38917912b1ff2e0a1d6996636170c0af89fb412d4168a5dfa6c9a55b2f71a\",\"urls\":[\"bzzr://238d0af72f2ac122a434f414df1707630b5a07fee0e042fdf94b97f202f34ac0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzzr://f7f6da60a184233fd666ac44e6fb2bd51ca6ebdc4867a310d368049aa4e62786\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b4838038062002b48833981018060405260808110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b50506020820151604080840151606090940151600080546001600160a01b03191633178082559251949750929550926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38351620000f6906001906020870190620001e6565b50600280546001600160a01b038086166001600160a01b0319928316179092556003805492851692821692909217909155600e82905560048054909116331790554360055542600d8190556200015c9082620022076200016a602090811b91909117901c565b600f55506200028b92505050565b600082820183811015620001df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022957805160ff191683800117855562000259565b8280016001018555821562000259579182015b82811115620002595782518255916020019190600101906200023c565b50620002679291506200026b565b5090565b6200028891905b8082111562000267576000815560010162000272565b90565b6128ad806200029b6000396000f3fe6080604052600436106102045760003560e01c80639a0ba2ea11610118578063c2250a99116100a0578063f75adff81161006f578063f75adff814610713578063f7cdf47c146107a0578063f940e385146107b5578063f9f92be4146107f0578063ffa1ad741461082357610204565b8063c2250a9914610665578063e311481514610698578063e80b2b3d146106ad578063f2fde38b146106e057610204565b8063bab2af1d116100e7578063bab2af1d146105c0578063bab2f552146105f3578063bd10243014610608578063bfdce1991461061d578063c0470bb31461065057610204565b80639a0ba2ea146105395780639e45e0d014610563578063ad38bf2214610578578063b3a2af69146105ab57610204565b806370324b771161019b57806383b781881161016a57806383b781881461047a5780638da5cb5b146104c75780638f32d59b146104dc578063949813b8146104f1578063975057e71461052457610204565b806370324b77146103eb578063715018a61461042657806374c9ea821461043b5780637f03864b1461046557610204565b8063352fc85f116101d7578063352fc85f1461034f5780635bec4cb4146103955780636e553f65146103aa5780636fd689e8146103d657610204565b806305cf47441461028d57806309824a80146102d25780631e83409a14610307578063335e536c1461033a575b6003546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561023d573d6000803e3d6000fd5b506040805134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2005b34801561029957600080fd5b506102c0600480360360208110156102b057600080fd5b50356001600160a01b03166108ad565b60408051918252519081900360200190f35b3480156102de57600080fd5b50610305600480360360208110156102f557600080fd5b50356001600160a01b03166108bf565b005b34801561031357600080fd5b506103056004803603602081101561032a57600080fd5b50356001600160a01b0316610a4d565b34801561034657600080fd5b506102c0610dd3565b34801561035b57600080fd5b506103796004803603602081101561037257600080fd5b5035610dd9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a157600080fd5b506102c0610e00565b610305600480360360408110156103c057600080fd5b50803590602001356001600160a01b0316610e06565b3480156103e257600080fd5b50610305610f87565b3480156103f757600080fd5b506102c06004803603604081101561040e57600080fd5b506001600160a01b038135811691602001351661103b565b34801561043257600080fd5b506103056110ca565b34801561044757600080fd5b506103056004803603602081101561045e57600080fd5b503561115e565b34801561047157600080fd5b506102c06111ef565b34801561048657600080fd5b506104b36004803603604081101561049d57600080fd5b506001600160a01b0381351690602001356111f5565b604080519115158252519081900360200190f35b3480156104d357600080fd5b50610379611215565b3480156104e857600080fd5b506104b3611225565b3480156104fd57600080fd5b506102c06004803603602081101561051457600080fd5b50356001600160a01b0316611236565b34801561053057600080fd5b50610379611248565b34801561054557600080fd5b506103796004803603602081101561055c57600080fd5b5035611257565b34801561056f57600080fd5b50610379611264565b34801561058457600080fd5b506103056004803603602081101561059b57600080fd5b50356001600160a01b0316611273565b3480156105b757600080fd5b506102c0611385565b3480156105cc57600080fd5b50610305600480360360208110156105e357600080fd5b50356001600160a01b0316611570565b3480156105ff57600080fd5b506102c0611633565b34801561061457600080fd5b50610379611639565b34801561062957600080fd5b506102c06004803603602081101561064057600080fd5b50356001600160a01b0316611648565b34801561065c57600080fd5b506102c061165a565b34801561067157600080fd5b506103056004803603602081101561068857600080fd5b50356001600160a01b0316611660565b3480156106a457600080fd5b506102c0611716565b3480156106b957600080fd5b506102c0600480360360208110156106d057600080fd5b50356001600160a01b031661171c565b3480156106ec57600080fd5b506103056004803603602081101561070357600080fd5b50356001600160a01b03166117be565b34801561071f57600080fd5b506103056004803603604081101561073657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561076157600080fd5b82018360208201111561077357600080fd5b8035906020019184602083028401116401000000008311171561079557600080fd5b509092509050611811565b3480156107ac57600080fd5b50610379611849565b3480156107c157600080fd5b50610305600480360360408110156107d857600080fd5b506001600160a01b0381358116916020013516611861565b3480156107fc57600080fd5b506103056004803603602081101561081357600080fd5b50356001600160a01b0316611aee565b34801561082f57600080fd5b50610838611ccf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561087257818101518382015260200161085a565b50505050905090810190601f16801561089f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600c6020526000908152604090205481565b6108c7611225565b6109095760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a6020526040902054156109775760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b60085460005b818110156109f957826001600160a01b03166008828154811061099c57fe5b6000918252602090912001546001600160a01b031614156109f157604051600160e51b62461bcd0281526004018080602001828103825260228152602001806128406022913960400191505060405180910390fd5b60010161097d565b5050600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015610aa057600080fd5b505afa158015610ab4573d6000803e3d6000fd5b505050506040513d6020811015610aca57600080fd5b5051610b205760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e01b63fe575a870281526001600160a01b03808616600483015291518593929092169163fe575a8791602480820192602092909190829003018186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d6020811015610b9d57600080fd5b505115610bf45760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b639a4d6f3b0281526001600160a01b03868116600483015291516000939290921691639a4d6f3b91602480820192602092909190829003018186803b158015610c4857600080fd5b505afa158015610c5c573d6000803e3d6000fd5b505050506040513d6020811015610c7257600080fd5b5051905080610d295760035460408051600160e11b634d8c928d0281526001600160a01b03878116600483015291519190921691639b19251a91602480830192600092919082900301818387803b158015610ccc57600080fd5b505af1158015610ce0573d6000803e3d6000fd5b50506040805142815290516001600160a01b03881693507f7634be097aa1800f447c3ae3ffe9444f1bc44a98bd2c1e986c1883f9f645f2b692509081900360200190a250610dce565b600d548110610d825760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f7420636c61696d20666f722074686973206379636c650000000000604482015290519081900360640190fd5b610d8b84611d5c565b60065460408051918252516001600160a01b038616917f99c5ad5c5f898b30039b8cc54b8c0e6eb423e49bfc965a5999ebad131984e40d919081900360200190a2505b505050565b600d5481565b60088181548110610de657fe5b6000918252602090912001546001600160a01b0316905081565b600e5481565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610ec557348314610e845760408051600160e51b62461bcd02815260206004820152601860248201527f6d69736d617463686564206465706f7369742076616c75650000000000000000604482015290519081900360640190fd5b5060035460405134916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebf573d6000803e3d6000fd5b50610f40565b3415610f1b5760408051600160e51b62461bcd02815260206004820152601960248201527f756e6578706563746564206574686572207472616e7366657200000000000000604482015290519081900360640190fd5b600354610f3d906001600160a01b03848116913391168663ffffffff611f2416565b90505b604080518281526001600160a01b0384166020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2505050565b610f8f611225565b610fd15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b50505050565b60035460408051600160e01b6370324b770281526001600160a01b0385811660048301528481166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561109757600080fd5b505afa1580156110ab573d6000803e3d6000fd5b505050506040513d60208110156110c157600080fd5b50519392505050565b6110d2611225565b6111145760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611166611225565b6111a85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600e805490829055604080518381526020810183905281517f59cbd678a801fd313f133a5efc6be7aee2814b07d41c9d9fb72f91197b2f9d4a929181900390910190a15050565b60075481565b601060209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b600b6020526000908152604090205481565b6003546001600160a01b031681565b60098181548110610de657fe5b6002546001600160a01b031681565b61127b611225565b6112bd5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b03811661131b5760408051600160e51b62461bcd02815260206004820152601860248201527f696e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b600454604080516001600160a01b038085168252909216602083015280517fef549604431567c0cd1b94ebc91fed6cf5cd907f6ff0b63aa1d475dcf8d4901c9281900390910190a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000600f544210156113e15760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f74206379636c65207965743a20746f6f206561726c790000000000604482015290519081900360640190fd5b60055443141561143b5760408051600160e51b62461bcd02815260206004820152600c60248201527f6e6f206e657720626c6f636b0000000000000000000000000000000000000000604482015290519081900360640190fd5b60095460005b8181101561147b576114736009828154811061145957fe5b6000918252602090912001546001600160a01b031661210f565b600101611441565b506005805460065543905542600d819055600e5461149f919063ffffffff61220716565b600f5560035460408051600160e11b630fe37f4702815290516001600160a01b0390921691631fc6fe8e91600480820192602092909190829003018186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d602081101561151457600080fd5b505160075561152161226b565b600554600654600f5460408051938452602084019290925282820152517f6611b6f4e1fb92277f863eca934cba1c2d6987070d73762b72b942720bfe43a29181900360600190a1505060055490565b611578611225565b6115ba5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a60205260409020546116275760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b6116308161233c565b50565b60055481565b6004546001600160a01b031681565b600a6020526000908152604090205481565b600f5481565b611668611225565b6116aa5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b60035460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b5050505050565b60065481565b6001600160a01b038082166000818152600b60209081526040808320546003548251600160e01b63a0821be30281526004810196909652915193956117b895919492169263a0821be392602480840193829003018186803b15801561178057600080fd5b505afa158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50519063ffffffff61245716565b92915050565b6117c6611225565b6118085760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b611630816124b7565b60005b81811015611035576118418484848481811061182c57fe5b905060200201356001600160a01b0316611861565b600101611814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60025460408051600160e01b631cedf8a30281526001600160a01b03858116600483015291516000939290921691631cedf8a391602480820192602092909190829003018186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b505190506001600160a01b0381166119415760408051600160e51b62461bcd02815260206004820152601660248201527f696e76616c6964206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b6370324b770281526001600160a01b0386811660048301528581166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b5051905080611a205760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7468696e6720746f20776974686472617700000000000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b63f9ce78130281526001600160a01b03878116600483015286811660248301526044820185905285811660648301529151919092169163f9ce781391608480830192600092919082900301818387803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b5050604080518481526001600160a01b038781166020830152825190891694507fe1f157c0881b2e477dca89772b158029611366b8e7dc8be4f6f308fa7a0aa02893509081900390910190a250505050565b6004546001600160a01b03163314611b505760408051600160e51b62461bcd02815260206004820152600f60248201527f6e6f7420426c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d6020811015611bcd57600080fd5b5051611c235760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e21b633e7e4af90281526001600160a01b0385811660048301529151919092169163f9f92be491602480830192600092919082900301818387803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b50506040805142815290516001600160a01b03861693507fd2b847810d644004679c7a8d5f5188fe2b12b6f34dba8501760d99232fa9b7bc92509081900360200190a25050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b505050505081565b6001600160a01b0381166000908152601060209081526040808320600654845290915290205460ff1615611dda5760408051600160e51b62461bcd02815260206004820152601660248201527f72657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260106020908152604080832060065484529091528120805460ff19166001179055600954905b81811015610dce57600060098281548110611e2657fe5b60009182526020808320909101546001600160a01b0316808352600c90915260409091205490915015611f1b576001600160a01b0381166000908152600c6020908152604080832054600b90925290912054611e879163ffffffff61245716565b6001600160a01b038083166000818152600b6020908152604080832095909555600354600c909152848220548551600160e01b63d23b90a50281528a86166004820152602481019490945260448401529351939092169263d23b90a59260648084019391929182900301818387803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505050505b50600101611e0f565b600080856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7d57600080fd5b505afa158015611f91573d6000803e3d6000fd5b505050506040513d6020811015611fa757600080fd5b5051604080516001600160a01b0388811660248301528716604482015260648082018790528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd0217905290915061200990879061255a565b61201161271f565b6120655760408051600160e51b62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000866001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b50519050612104846120ff838563ffffffff61245716565b612753565b979650505050505050565b600754612141576001600160a01b0381166000908152600b60209081526040808320839055600c909152812055611630565b60035460408051600160e01b63a0821be30281526001600160a01b0384811660048301529151919092169163a0821be3916024808301926020929190829003018186803b15801561219157600080fd5b505afa1580156121a5573d6000803e3d6000fd5b505050506040513d60208110156121bb57600080fd5b50516001600160a01b0382166000908152600b602052604090208190556007546121eb919063ffffffff61276916565b6001600160a01b0382166000908152600c602052604090205550565b6000828201838110156122645760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60085460005b8181101561232a5760006008828154811061228857fe5b6000918252602080832090910154600980546001810182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03909316928317905554818452600a835260409384902055825181815292519093507fd780ddbc43f0c4efd61c5ca1bc8eeee3368abfb1f97aa7355da9f8bf8431c8ae9281900390910190a150600101612271565b5060006123386008826127dc565b5050565b600980546000919061235590600163ffffffff61245716565b8154811061235f57fe5b60009182526020808320909101546001600160a01b038581168452600a90925260408320549116925061239990600163ffffffff61245716565b905081600982815481106123a957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600a905260408082205492851682529020556009546123f6906001612457565b6124016009826127dc565b506001600160a01b0383166000818152600a6020908152604080832092909255815192835290517fe46f21bb6906b7d69a6c06d5662a2b6c1c59d134cd7b1235babdb1a70a4b436a9281900390910190a1505050565b6000828211156124b15760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0381166124ff57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061281a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61256c826001600160a01b03166127d6565b6125c05760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125fe5780518252601f1990920191602091820191016125df565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b5091509150816126b65760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115611035578080602001905160208110156126d257600080fd5b50516110355760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b6000803d8015612736576020811461273f5761274b565b6001915061274b565b60206000803e60005191505b501515905090565b60008183106127625781612264565b5090919050565b60008082116127c25760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127cd57fe5b04949350505050565b3b151590565b815481835581811115610dce57600083815260209020610dce91810190830161122291905b808211156128155760008155600101612801565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820b09be68cbc93dd6791f672fb84489172de5ab08d82093f834649ac27077dab7a0029", - "deployedBytecode": "0x6080604052600436106102045760003560e01c80639a0ba2ea11610118578063c2250a99116100a0578063f75adff81161006f578063f75adff814610713578063f7cdf47c146107a0578063f940e385146107b5578063f9f92be4146107f0578063ffa1ad741461082357610204565b8063c2250a9914610665578063e311481514610698578063e80b2b3d146106ad578063f2fde38b146106e057610204565b8063bab2af1d116100e7578063bab2af1d146105c0578063bab2f552146105f3578063bd10243014610608578063bfdce1991461061d578063c0470bb31461065057610204565b80639a0ba2ea146105395780639e45e0d014610563578063ad38bf2214610578578063b3a2af69146105ab57610204565b806370324b771161019b57806383b781881161016a57806383b781881461047a5780638da5cb5b146104c75780638f32d59b146104dc578063949813b8146104f1578063975057e71461052457610204565b806370324b77146103eb578063715018a61461042657806374c9ea821461043b5780637f03864b1461046557610204565b8063352fc85f116101d7578063352fc85f1461034f5780635bec4cb4146103955780636e553f65146103aa5780636fd689e8146103d657610204565b806305cf47441461028d57806309824a80146102d25780631e83409a14610307578063335e536c1461033a575b6003546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561023d573d6000803e3d6000fd5b506040805134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2005b34801561029957600080fd5b506102c0600480360360208110156102b057600080fd5b50356001600160a01b03166108ad565b60408051918252519081900360200190f35b3480156102de57600080fd5b50610305600480360360208110156102f557600080fd5b50356001600160a01b03166108bf565b005b34801561031357600080fd5b506103056004803603602081101561032a57600080fd5b50356001600160a01b0316610a4d565b34801561034657600080fd5b506102c0610dd3565b34801561035b57600080fd5b506103796004803603602081101561037257600080fd5b5035610dd9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a157600080fd5b506102c0610e00565b610305600480360360408110156103c057600080fd5b50803590602001356001600160a01b0316610e06565b3480156103e257600080fd5b50610305610f87565b3480156103f757600080fd5b506102c06004803603604081101561040e57600080fd5b506001600160a01b038135811691602001351661103b565b34801561043257600080fd5b506103056110ca565b34801561044757600080fd5b506103056004803603602081101561045e57600080fd5b503561115e565b34801561047157600080fd5b506102c06111ef565b34801561048657600080fd5b506104b36004803603604081101561049d57600080fd5b506001600160a01b0381351690602001356111f5565b604080519115158252519081900360200190f35b3480156104d357600080fd5b50610379611215565b3480156104e857600080fd5b506104b3611225565b3480156104fd57600080fd5b506102c06004803603602081101561051457600080fd5b50356001600160a01b0316611236565b34801561053057600080fd5b50610379611248565b34801561054557600080fd5b506103796004803603602081101561055c57600080fd5b5035611257565b34801561056f57600080fd5b50610379611264565b34801561058457600080fd5b506103056004803603602081101561059b57600080fd5b50356001600160a01b0316611273565b3480156105b757600080fd5b506102c0611385565b3480156105cc57600080fd5b50610305600480360360208110156105e357600080fd5b50356001600160a01b0316611570565b3480156105ff57600080fd5b506102c0611633565b34801561061457600080fd5b50610379611639565b34801561062957600080fd5b506102c06004803603602081101561064057600080fd5b50356001600160a01b0316611648565b34801561065c57600080fd5b506102c061165a565b34801561067157600080fd5b506103056004803603602081101561068857600080fd5b50356001600160a01b0316611660565b3480156106a457600080fd5b506102c0611716565b3480156106b957600080fd5b506102c0600480360360208110156106d057600080fd5b50356001600160a01b031661171c565b3480156106ec57600080fd5b506103056004803603602081101561070357600080fd5b50356001600160a01b03166117be565b34801561071f57600080fd5b506103056004803603604081101561073657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561076157600080fd5b82018360208201111561077357600080fd5b8035906020019184602083028401116401000000008311171561079557600080fd5b509092509050611811565b3480156107ac57600080fd5b50610379611849565b3480156107c157600080fd5b50610305600480360360408110156107d857600080fd5b506001600160a01b0381358116916020013516611861565b3480156107fc57600080fd5b506103056004803603602081101561081357600080fd5b50356001600160a01b0316611aee565b34801561082f57600080fd5b50610838611ccf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561087257818101518382015260200161085a565b50505050905090810190601f16801561089f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600c6020526000908152604090205481565b6108c7611225565b6109095760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a6020526040902054156109775760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b60085460005b818110156109f957826001600160a01b03166008828154811061099c57fe5b6000918252602090912001546001600160a01b031614156109f157604051600160e51b62461bcd0281526004018080602001828103825260228152602001806128406022913960400191505060405180910390fd5b60010161097d565b5050600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015610aa057600080fd5b505afa158015610ab4573d6000803e3d6000fd5b505050506040513d6020811015610aca57600080fd5b5051610b205760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e01b63fe575a870281526001600160a01b03808616600483015291518593929092169163fe575a8791602480820192602092909190829003018186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d6020811015610b9d57600080fd5b505115610bf45760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b639a4d6f3b0281526001600160a01b03868116600483015291516000939290921691639a4d6f3b91602480820192602092909190829003018186803b158015610c4857600080fd5b505afa158015610c5c573d6000803e3d6000fd5b505050506040513d6020811015610c7257600080fd5b5051905080610d295760035460408051600160e11b634d8c928d0281526001600160a01b03878116600483015291519190921691639b19251a91602480830192600092919082900301818387803b158015610ccc57600080fd5b505af1158015610ce0573d6000803e3d6000fd5b50506040805142815290516001600160a01b03881693507f7634be097aa1800f447c3ae3ffe9444f1bc44a98bd2c1e986c1883f9f645f2b692509081900360200190a250610dce565b600d548110610d825760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f7420636c61696d20666f722074686973206379636c650000000000604482015290519081900360640190fd5b610d8b84611d5c565b60065460408051918252516001600160a01b038616917f99c5ad5c5f898b30039b8cc54b8c0e6eb423e49bfc965a5999ebad131984e40d919081900360200190a2505b505050565b600d5481565b60088181548110610de657fe5b6000918252602090912001546001600160a01b0316905081565b600e5481565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610ec557348314610e845760408051600160e51b62461bcd02815260206004820152601860248201527f6d69736d617463686564206465706f7369742076616c75650000000000000000604482015290519081900360640190fd5b5060035460405134916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebf573d6000803e3d6000fd5b50610f40565b3415610f1b5760408051600160e51b62461bcd02815260206004820152601960248201527f756e6578706563746564206574686572207472616e7366657200000000000000604482015290519081900360640190fd5b600354610f3d906001600160a01b03848116913391168663ffffffff611f2416565b90505b604080518281526001600160a01b0384166020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2505050565b610f8f611225565b610fd15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b50505050565b60035460408051600160e01b6370324b770281526001600160a01b0385811660048301528481166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561109757600080fd5b505afa1580156110ab573d6000803e3d6000fd5b505050506040513d60208110156110c157600080fd5b50519392505050565b6110d2611225565b6111145760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611166611225565b6111a85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600e805490829055604080518381526020810183905281517f59cbd678a801fd313f133a5efc6be7aee2814b07d41c9d9fb72f91197b2f9d4a929181900390910190a15050565b60075481565b601060209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b600b6020526000908152604090205481565b6003546001600160a01b031681565b60098181548110610de657fe5b6002546001600160a01b031681565b61127b611225565b6112bd5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b03811661131b5760408051600160e51b62461bcd02815260206004820152601860248201527f696e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b600454604080516001600160a01b038085168252909216602083015280517fef549604431567c0cd1b94ebc91fed6cf5cd907f6ff0b63aa1d475dcf8d4901c9281900390910190a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000600f544210156113e15760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f74206379636c65207965743a20746f6f206561726c790000000000604482015290519081900360640190fd5b60055443141561143b5760408051600160e51b62461bcd02815260206004820152600c60248201527f6e6f206e657720626c6f636b0000000000000000000000000000000000000000604482015290519081900360640190fd5b60095460005b8181101561147b576114736009828154811061145957fe5b6000918252602090912001546001600160a01b031661210f565b600101611441565b506005805460065543905542600d819055600e5461149f919063ffffffff61220716565b600f5560035460408051600160e11b630fe37f4702815290516001600160a01b0390921691631fc6fe8e91600480820192602092909190829003018186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d602081101561151457600080fd5b505160075561152161226b565b600554600654600f5460408051938452602084019290925282820152517f6611b6f4e1fb92277f863eca934cba1c2d6987070d73762b72b942720bfe43a29181900360600190a1505060055490565b611578611225565b6115ba5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a60205260409020546116275760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b6116308161233c565b50565b60055481565b6004546001600160a01b031681565b600a6020526000908152604090205481565b600f5481565b611668611225565b6116aa5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b60035460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b5050505050565b60065481565b6001600160a01b038082166000818152600b60209081526040808320546003548251600160e01b63a0821be30281526004810196909652915193956117b895919492169263a0821be392602480840193829003018186803b15801561178057600080fd5b505afa158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50519063ffffffff61245716565b92915050565b6117c6611225565b6118085760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b611630816124b7565b60005b81811015611035576118418484848481811061182c57fe5b905060200201356001600160a01b0316611861565b600101611814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60025460408051600160e01b631cedf8a30281526001600160a01b03858116600483015291516000939290921691631cedf8a391602480820192602092909190829003018186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b505190506001600160a01b0381166119415760408051600160e51b62461bcd02815260206004820152601660248201527f696e76616c6964206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b6370324b770281526001600160a01b0386811660048301528581166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b5051905080611a205760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7468696e6720746f20776974686472617700000000000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b63f9ce78130281526001600160a01b03878116600483015286811660248301526044820185905285811660648301529151919092169163f9ce781391608480830192600092919082900301818387803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b5050604080518481526001600160a01b038781166020830152825190891694507fe1f157c0881b2e477dca89772b158029611366b8e7dc8be4f6f308fa7a0aa02893509081900390910190a250505050565b6004546001600160a01b03163314611b505760408051600160e51b62461bcd02815260206004820152600f60248201527f6e6f7420426c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d6020811015611bcd57600080fd5b5051611c235760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e21b633e7e4af90281526001600160a01b0385811660048301529151919092169163f9f92be491602480830192600092919082900301818387803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b50506040805142815290516001600160a01b03861693507fd2b847810d644004679c7a8d5f5188fe2b12b6f34dba8501760d99232fa9b7bc92509081900360200190a25050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b505050505081565b6001600160a01b0381166000908152601060209081526040808320600654845290915290205460ff1615611dda5760408051600160e51b62461bcd02815260206004820152601660248201527f72657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260106020908152604080832060065484529091528120805460ff19166001179055600954905b81811015610dce57600060098281548110611e2657fe5b60009182526020808320909101546001600160a01b0316808352600c90915260409091205490915015611f1b576001600160a01b0381166000908152600c6020908152604080832054600b90925290912054611e879163ffffffff61245716565b6001600160a01b038083166000818152600b6020908152604080832095909555600354600c909152848220548551600160e01b63d23b90a50281528a86166004820152602481019490945260448401529351939092169263d23b90a59260648084019391929182900301818387803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505050505b50600101611e0f565b600080856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7d57600080fd5b505afa158015611f91573d6000803e3d6000fd5b505050506040513d6020811015611fa757600080fd5b5051604080516001600160a01b0388811660248301528716604482015260648082018790528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd0217905290915061200990879061255a565b61201161271f565b6120655760408051600160e51b62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000866001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b50519050612104846120ff838563ffffffff61245716565b612753565b979650505050505050565b600754612141576001600160a01b0381166000908152600b60209081526040808320839055600c909152812055611630565b60035460408051600160e01b63a0821be30281526001600160a01b0384811660048301529151919092169163a0821be3916024808301926020929190829003018186803b15801561219157600080fd5b505afa1580156121a5573d6000803e3d6000fd5b505050506040513d60208110156121bb57600080fd5b50516001600160a01b0382166000908152600b602052604090208190556007546121eb919063ffffffff61276916565b6001600160a01b0382166000908152600c602052604090205550565b6000828201838110156122645760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60085460005b8181101561232a5760006008828154811061228857fe5b6000918252602080832090910154600980546001810182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03909316928317905554818452600a835260409384902055825181815292519093507fd780ddbc43f0c4efd61c5ca1bc8eeee3368abfb1f97aa7355da9f8bf8431c8ae9281900390910190a150600101612271565b5060006123386008826127dc565b5050565b600980546000919061235590600163ffffffff61245716565b8154811061235f57fe5b60009182526020808320909101546001600160a01b038581168452600a90925260408320549116925061239990600163ffffffff61245716565b905081600982815481106123a957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600a905260408082205492851682529020556009546123f6906001612457565b6124016009826127dc565b506001600160a01b0383166000818152600a6020908152604080832092909255815192835290517fe46f21bb6906b7d69a6c06d5662a2b6c1c59d134cd7b1235babdb1a70a4b436a9281900390910190a1505050565b6000828211156124b15760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0381166124ff57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061281a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61256c826001600160a01b03166127d6565b6125c05760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125fe5780518252601f1990920191602091820191016125df565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b5091509150816126b65760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115611035578080602001905160208110156126d257600080fd5b50516110355760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b6000803d8015612736576020811461273f5761274b565b6001915061274b565b60206000803e60005191505b501515905090565b60008183106127625781612264565b5090919050565b60008082116127c25760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127cd57fe5b04949350505050565b3b151590565b815481835581811115610dce57600083815260209020610dce91810190830161122291905b808211156128155760008155600101612801565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820b09be68cbc93dd6791f672fb84489172de5ab08d82093f834649ac27077dab7a0029", - "sourceMap": "458:16695:1:-;;;6463:610;8:9:-1;5:2;;;30:1;27;20:12;5:2;6463:610:1;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6463:610:1;;;;;;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;;6463:610:1;;;;;;;;;;;;;;657:6:35;:19;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;6463:610:1;;-1:-1:-1;6463:610:1;;-1:-1:-1;6463:610:1;-1:-1:-1;;;;;724:6:35;;;;;657;691:40;;657:6;;691:40;6665:18:1;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;6693:16:1;:36;;-1:-1:-1;;;;;6693:36:1;;;-1:-1:-1;;;;;;6693:36:1;;;;;;;6739:5;:29;;;;;;;;;;;;;;;6778:13;:37;;;6869:11;:24;;;;;6883:10;6869:24;;;6954:12;6939;:27;6993:15;6976:14;:32;;;7033:33;;6794:21;7033:18;;;;;;;;;;:33;;:::i;:::-;7018:12;:48;-1:-1:-1;458:16695:1;;-1:-1:-1;;;458:16695:1;834:176:34;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;458:16695:1;;;-1:-1:-1;458:16695:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8084:5;;8076:34;;-1:-1:-1;;;;;8084:5:1;;;;8100:9;8076:34;;;;;8084:5;8076:34;8084:5;8076:34;8100:9;8084:5;8076:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8125:51:1;;;8156:9;8125:51;;730:42;8125:51;;;;;;8144:10;;8125:51;;;;;;;;458:16695;2183:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:59:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2183:59:1;-1:-1:-1;;;;;2183:59:1;;:::i;:::-;;;;;;;;;;;;;;;;11903:376;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11903:376:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11903:376:1;-1:-1:-1;;;;;11903:376:1;;:::i;:::-;;10761:630;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10761:630:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10761:630:1;-1:-1:-1;;;;;10761:630:1;;:::i;2306:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2306:29:1;;;:::i;1501:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1501:30:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1501:30:1;;:::i;:::-;;;;-1:-1:-1;;;;;1501:30:1;;;;;;;;;;;;;;2415:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2415:28:1;;;:::i;9773:606::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9773:606:1;;;;;;-1:-1:-1;;;;;9773:606:1;;:::i;13985:89::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13985:89:1;;;:::i;8469:162::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8469:162:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8469:162:1;;;;;;;;;;:::i;1599:137:35:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1599:137:35;;;:::i;13203:234:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13203:234:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13203:234:1;;:::i;1266:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:25:1;;;:::i;2727:65::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2727:65:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2727:65:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;814:77:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;814:77:35;;;:::i;1165:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:90:35;;;:::i;2012:51:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2012:51:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2012:51:1;-1:-1:-1;;;;;2012:51:1;;:::i;967:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;967:33:1;;;:::i;1650:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1650:33:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1650:33:1;;:::i;779:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;779:40:1;;;:::i;12794:219::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12794:219:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12794:219:1;-1:-1:-1;;;;;12794:219:1;;:::i;8680:882::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8680:882:1;;;:::i;12487:176::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12487:176:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12487:176:1;-1:-1:-1;;;;;12487:176:1;;:::i;1135:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:27:1;;;:::i;1102:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1102:26:1;;;:::i;1793:55::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1793:55:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1793:55:1;-1:-1:-1;;;;;1793:55:1;;:::i;2523:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2523:27:1;;;:::i;13639:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13639:121:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13639:121:1;-1:-1:-1;;;;;13639:121:1;;:::i;1168:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:28:1;;;:::i;8299:164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8299:164:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8299:164:1;-1:-1:-1;;;;;8299:164:1;;:::i;1885:107:35:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1885:107:35;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;7769:196:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7769:196:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;7769:196:1;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7769:196:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7769:196:1;;;;;;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;-1:-1;7769:196:1;;-1:-1:-1;7769:196:1;-1:-1:-1;7769:196:1;:::i;695:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:77:1;;;:::i;7287:476::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7287:476:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7287:476:1;;;;;;;;;;:::i;11540:183::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11540:183:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11540:183:1;-1:-1:-1;;;;;11540:183:1;;:::i;579:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;579:21:1;;;:::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;579:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2183:59;;;;;;;;;;;;;:::o;11903:376::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;11979:28:1;;;;;;:20;:28;;;;;;:33;11971:70;;;;;-1:-1:-1;;;;;11971:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12070:13;:20;12051:16;12100:137;12121:11;12117:1;:15;12100:137;;;12181:6;-1:-1:-1;;;;;12161:26:1;:13;12175:1;12161:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12161:16:1;:26;;12153:73;;;;-1:-1:-1;;;;;12153:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:3;;12100:137;;;-1:-1:-1;;12246:13:1;27:10:-1;;39:1;23:18;;45:23;;-1:-1;12246:26:1;;;;;;;;-1:-1:-1;;;;;;12246:26:1;-1:-1:-1;;;;;12246:26:1;;;;;;;;;;11903:376::o;10761:630::-;5526:16;;:40;;;-1:-1:-1;;;;;5526:40:1;;-1:-1:-1;;;;;5526:40:1;;;;;;;;;10817:9;;5526:16;;;;;:29;;:40;;;;;;;;;;;;;;;:16;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5526:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5526:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5526:40:1;5518:79;;;;;-1:-1:-1;;;;;5518:79:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:5;;:30;;;-1:-1:-1;;;;;5927:30:1;;-1:-1:-1;;;;;5927:30:1;;;;;;;;;10843:9;;5927:5;;;;;:19;;:30;;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5927:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5927:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5927:30:1;5926:31;5918:67;;;;;-1:-1:-1;;;;;5918:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;10890:5;;:34;;;-1:-1:-1;;;;;10890:34:1;;-1:-1:-1;;;;;10890:34:1;;;;;;;;;10864:23;;10890:5;;;;;:23;;:34;;;;;;;;;;;;;;;:5;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10890:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10890:34:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10890:34:1;;-1:-1:-1;10994:20:1;10990:154;;11030:5;;:26;;;-1:-1:-1;;;;;11030:26:1;;-1:-1:-1;;;;;11030:26:1;;;;;;;;;:5;;;;;:15;;:26;;;;;:5;;:26;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11030:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11075:38:1;;;11109:3;11075:38;;;;-1:-1:-1;;;;;11075:38:1;;;-1:-1:-1;11075:38:1;;-1:-1:-1;11075:38:1;;;;;;;;11127:7;;;10990:154;11180:14;;11162:15;:32;11154:72;;;;;-1:-1:-1;;;;;11154:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;11296:31;11317:9;11296:20;:31::i;:::-;11370:13;;11342:42;;;;;;;-1:-1:-1;;;;;11342:42:1;;;;;;;;;;;;;5995:1;;5607;10761:630;;:::o;2306:29::-;;;;:::o;1501:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1501:30:1;;-1:-1:-1;1501:30:1;:::o;2415:28::-;;;;:::o;9773:606::-;9849:21;-1:-1:-1;;;;;9884:18:1;;730:42;9884:18;9880:425;;;9936:9;9926:6;:19;9918:56;;;;;-1:-1:-1;;;;;9918:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10035:5:1;;10027:34;;10004:9;;-1:-1:-1;;;;;10035:5:1;;10027:34;;;;;10004:9;;10035:5;10027:34;10035:5;10027:34;10004:9;10035:5;10027:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10027:34:1;9880:425;;;10100:9;:14;10092:52;;;;;-1:-1:-1;;;;;10092:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;10279:5;;10220:74;;-1:-1:-1;;;;;10220:38:1;;;;10259:10;;10279:5;10287:6;10220:74;:38;:74;:::i;:::-;10204:90;;9880:425;10319:53;;;;;;-1:-1:-1;;;;;10319:53:1;;;;;;;;10338:10;;10319:53;;;;;;;;9773:606;;;:::o;13985:89::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;14045:5:1;;;;;;;;;-1:-1:-1;;;;;14045:5:1;-1:-1:-1;;;;;14045:20:1;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14045:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14045:22:1;;;;13985:89::o;8469:162::-;8581:5;;:43;;;-1:-1:-1;;;;;8581:43:1;;-1:-1:-1;;;;;8581:43:1;;;;;;;;;;;;;;;;8555:7;;8581:5;;;;;:22;;:43;;;;;;;;;;;;;;;:5;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;8581:43:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8581:43:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8581:43:1;;8469:162;-1:-1:-1;;;8469:162:1:o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;13203:234:1:-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;13309:13:1;;;13332:32;;;;13379:51;;;;;;;;;;;;;;;;;;;;;;;;;1074:1:35;13203:234:1;:::o;1266:25::-;;;;:::o;2727:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;814:77:35:-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;2012:51:1:-;;;;;;;;;;;;;:::o;967:33::-;;;-1:-1:-1;;;;;967:33:1;;:::o;1650:::-;;;;;;;;;;779:40;;;-1:-1:-1;;;;;779:40:1;;:::o;12794:219::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;12873:19:1;;12865:56;;;;;-1:-1:-1;;;;;12865:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12965:11;;12936:41;;;-1:-1:-1;;;;;12936:41:1;;;;;12965:11;;;12936:41;;;;;;;;;;;;;;;;12987:11;:19;;-1:-1:-1;;;;;;12987:19:1;-1:-1:-1;;;;;12987:19:1;;;;;;;;;;12794:219::o;8680:882::-;8721:7;8755:12;;8748:3;:19;;8740:59;;;;;-1:-1:-1;;;;;8740:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8833:12;;8817;:28;;8809:53;;;;;-1:-1:-1;;;;;8809:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8940:16;:23;8921:16;8973:101;8994:11;8990:1;:15;8973:101;;;9026:37;9043:16;9060:1;9043:19;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9043:19:1;9026:16;:37::i;:::-;9007:3;;8973:101;;;-1:-1:-1;9129:12:1;;;9113:13;:28;9166:12;9151:27;;9205:15;9188:14;:32;;;9264:13;;9245:33;;9205:15;9245:33;:18;:33;:::i;:::-;9230:12;:48;9350:5;;:31;;;-1:-1:-1;;;;;9350:31:1;;;;-1:-1:-1;;;;;9350:5:1;;;;:29;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;9350:31:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9350:31:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9350:31:1;9337:10;:44;9438:18;:16;:18::i;:::-;9484:12;;9498:13;;9513:12;;9472:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9543:12:1;;8680:882;:::o;12487:176::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;12565:28:1;;12596:1;12565:28;;;:20;:28;;;;;;12557:65;;;;;-1:-1:-1;;;;;12557:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12632:24;12649:6;12632:16;:24::i;:::-;12487:176;:::o;1135:27::-;;;;:::o;1102:26::-;;;-1:-1:-1;;;;;1102:26:1;;:::o;1793:55::-;;;;;;;;;;;;;:::o;2523:27::-;;;;:::o;13639:121::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;13719:5:1;;:34;;;-1:-1:-1;;;;;13719:34:1;;-1:-1:-1;;;;;13719:34:1;;;;;;;;;:5;;;;;:23;;:34;;;;;:5;;:34;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;13719:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13719:34:1;;;;13639:121;:::o;1168:28::-;;;;:::o;8299:164::-;-1:-1:-1;;;;;8431:24:1;;;8370:7;8431:24;;;:16;:24;;;;;;;;;8396:5;;:30;;-1:-1:-1;;;;;8396:30:1;;;;;;;;;;;8370:7;;8396:60;;8431:24;;8396:5;;;:22;;:30;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;8396:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8396:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8396:30:1;;:60;:34;:60;:::i;:::-;8389:67;8299:164;-1:-1:-1;;8299:164:1:o;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;7769:196:1:-;7866:6;7861:98;7878:18;;;7861:98;;;7917:31;7926:9;7937:7;;7945:1;7937:10;;;;;;;;;;;;;-1:-1:-1;;;;;7937:10:1;7917:8;:31::i;:::-;7898:3;;7861:98;;695:77;730:42;695:77;:::o;7287:476::-;7389:16;;:44;;;-1:-1:-1;;;;;7389:44:1;;-1:-1:-1;;;;;7389:44:1;;;;;;;;;7357:29;;7389:16;;;;;:33;;:44;;;;;;;;;;;;;;;:16;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;7389:44:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7389:44:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7389:44:1;;-1:-1:-1;;;;;;7451:29:1;;7443:64;;;;;-1:-1:-1;;;;;7443:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7535:5;;:41;;;-1:-1:-1;;;;;7535:41:1;;-1:-1:-1;;;;;7535:41:1;;;;;;;;;;;;;;;;7518:14;;7535:5;;;;;:22;;:41;;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;7535:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7535:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7535:41:1;;-1:-1:-1;7594:10:1;7586:42;;;;;-1:-1:-1;;;;;7586:42:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7639:5;;:56;;;-1:-1:-1;;;;;7639:56:1;;-1:-1:-1;;;;;7639:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;;;;:14;;:56;;;;;:5;;:56;;;;;;;:5;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;7639:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7710:46:1;;;;;;-1:-1:-1;;;;;7710:46:1;;;;;;;;;;;;;-1:-1:-1;7710:46:1;;-1:-1:-1;7710:46:1;;;;;;;;;7287:476;;;;:::o;11540:183::-;5719:11;;-1:-1:-1;;;;;5719:11:1;5734:10;5719:25;5711:53;;;;;-1:-1:-1;;;;;5711:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5526:16;;:40;;;-1:-1:-1;;;;;5526:40:1;;-1:-1:-1;;;;;5526:40:1;;;;;;;;;11616:9;;5526:16;;;;;:29;;:40;;;;;;;;;;;;;;;:16;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5526:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5526:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5526:40:1;5518:79;;;;;-1:-1:-1;;;;;5518:79:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;11637:5;;:26;;;-1:-1:-1;;;;;11637:26:1;;-1:-1:-1;;;;;11637:26:1;;;;;;;;;:5;;;;;:15;;:26;;;;;:5;;:26;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11637:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11678:38:1;;;11712:3;11678:38;;;;-1:-1:-1;;;;;11678:38:1;;;-1:-1:-1;11678:38:1;;-1:-1:-1;11678:38:1;;;;;;;;5774:1;11540:183;:::o;579:21::-;;;;;;;;;;;;;;;-1:-1:-1;;579:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14358:712::-;-1:-1:-1;;;;;14434:24:1;;;;;;:13;:24;;;;;;;;14459:13;;14434:39;;;;;;;;;;14433:40;14425:75;;;;;-1:-1:-1;;;;;14425:75:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:24:1;;;;;;:13;:24;;;;;;;;14535:13;;14510:39;;;;;;;:46;;-1:-1:-1;;14510:46:1;14552:4;14510:46;;;14585:16;:23;;14618:446;14639:11;14635:1;:15;14618:446;;;14671:13;14687:16;14704:1;14687:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14687:19:1;14799:31;;;:24;:31;;;;;;;;14687:19;;-1:-1:-1;14799:35:1;14795:259;;-1:-1:-1;;;;;14908:31:1;;;;;;:24;:31;;;;;;;;;14880:16;:23;;;;;;;:60;;;:27;:60;:::i;:::-;-1:-1:-1;;;;;14854:23:1;;;;;;;:16;:23;;;;;;;;:86;;;;14958:5;;15007:24;:31;;;;;;;14958:81;;-1:-1:-1;;;;;14958:81:1;;;;;;;;;;;;;;;;;;;;;;:5;;;;;:30;;:81;;;;;14854:23;;14958:81;;;;;;14854:23;14958:5;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;14958:81:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14958:81:1;;;;14795:259;-1:-1:-1;14652:3:1;;14618:446;;1461:465:14;1568:7;1587:22;1612:5;-1:-1:-1;;;;;1612:15:14;;1628:2;1612:19;;;;;;;;;;;;;-1:-1:-1;;;;;1612:19:14;-1:-1:-1;;;;;1612:19:14;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1612:19:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1612:19:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1612:19:14;1667:68;;;-1:-1:-1;;;;;1667:68:14;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1667:68:14;;;;;;;1612:19;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;1612:19:14;;-1:-1:-1;1641:95:14;;1660:5;;1641:18;:95::i;:::-;1754:21;:19;:21::i;:::-;1746:53;;;;;-1:-1:-1;;;;;1746:53:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:21;1833:5;-1:-1:-1;;;;;1833:15:14;;1849:2;1833:19;;;;;;;;;;;;;-1:-1:-1;;;;;1833:19:14;-1:-1:-1;;;;;1833:19:14;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1833:19:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1833:19:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1833:19:14;;-1:-1:-1;1869:50:14;1878:5;1885:33;1833:19;1903:14;1885:33;:17;:33;:::i;:::-;1869:8;:50::i;:::-;1862:57;1461:465;-1:-1:-1;;;;;;;1461:465:14:o;15245:441:1:-;15309:10;;15305:375;;-1:-1:-1;;;;;15340:24:1;;15367:1;15340:24;;;:16;:24;;;;;;;;:28;;;15382:24;:32;;;;;:36;15305:375;;;15550:5;;:30;;;-1:-1:-1;;;;;15550:30:1;;-1:-1:-1;;;;;15550:30:1;;;;;;;;;:5;;;;;:22;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15550:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15550:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15550:30:1;-1:-1:-1;;;;;15523:24:1;;;;;;:16;15550:30;15523:24;;;;:57;;;15658:10;;15629:40;;15550:30;15629:40;:28;:40;:::i;:::-;-1:-1:-1;;;;;15594:32:1;;;;;;:24;:32;;;;;:75;15245:441;:::o;834:176:34:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;16739:411:1:-;16831:13;:20;16812:16;16861:249;16882:11;16878:1;:15;16861:249;;;16914:13;16930;16944:1;16930:16;;;;;;;;;;;;;;;;;;;;16960;27:10:-1;;16930:16:1;23:18:-1;;45:23;;16960:28:1;;;;-1:-1:-1;;;;;;16960:28:1;-1:-1:-1;;;;;16930:16:1;;;16960:28;;;;;17032:23;17002:27;;;:20;:27;;;;;;;:53;17074:25;;;;;;;16930:16;;-1:-1:-1;17074:25:1;;;;;;;;;;-1:-1:-1;16895:3:1;;16861:249;;;-1:-1:-1;17142:1:1;17119:24;:13;17142:1;17119:24;:::i;:::-;;16739:411;:::o;15862:688::-;15942:16;15959:23;;15922:17;;15942:16;15959:30;;15987:1;15959:30;:27;:30;:::i;:::-;15942:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16028:28:1;;;;;:20;:28;;;;;;;15942:48;;;-1:-1:-1;16028:35:1;;15942:48;16028:35;:32;:35;:::i;:::-;16000:63;;16185:9;16147:16;16164:17;16147:35;;;;;;;;;;;;;;;;;;;;:47;;-1:-1:-1;;;;;;16147:47:1;-1:-1:-1;;;;;16147:47:1;;;;;;16238:28;;;;;:20;:28;;;;;;;16204:31;;;;;;;:62;16427:16;:23;:30;;-1:-1:-1;16427:27:1;:30::i;:::-;16401:56;:16;:56;;:::i;:::-;-1:-1:-1;;;;;;16467:28:1;;16498:1;16467:28;;;:20;:28;;;;;;;;:32;;;;16515:28;;;;;;;;;;;;;;;;;15862:688;;;:::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;2093:225:35:-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o;3398:930:14:-;3941:27;3949:5;-1:-1:-1;;;;;3941:25:14;;:27::i;:::-;3933:55;;;;;-1:-1:-1;;;;;3933:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:12;4073:23;4108:5;-1:-1:-1;;;;;4100:19:14;4120:4;4100:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4100:25:14;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4058:67:14;;;;4143:7;4135:37;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;;;;4187:17;;:21;4183:139;;4270:10;4259:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4259:30:14;4251:60;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;;;4505:810;4558:4;;4770:14;4855:54;;;;4979:2;4974:220;;;;4763:503;;4855:54;4894:1;4880:15;;4855:54;;4974:220;5080:2;5077:1;5074;5059:24;5178:1;5172:8;5158:22;;4763:503;-1:-1:-1;5293:15:14;;;-1:-1:-1;4505:810:14;:::o;358:104:33:-;416:7;446:1;442;:5;:13;;454:1;442:13;;;-1:-1:-1;450:1:33;;435:20;-1:-1:-1;358:104:33:o;2606:326:34:-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:34:o;542:413:41:-;902:20;940:8;;;542:413::o;458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\nimport \"../libraries/CompatibleERC20Functions.sol\";\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\nimport \"./DarknodePaymentStore.sol\";\n\n/// @notice DarknodePayment is responsible for paying off darknodes for their\n/// computation.\ncontract DarknodePayment is Ownable {\n using SafeMath for uint256;\n using CompatibleERC20Functions for ERC20;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice The special address for Ether.\n address constant public ETHEREUM = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n DarknodeRegistry public darknodeRegistry; // Passed in as a constructor parameter.\n\n /// @notice DarknodePaymentStore is the storage contract for darknode\n /// payments.\n DarknodePaymentStore public store; // Passed in as a constructor parameter.\n\n /// @notice The address that can call blacklist()\n address public blacklister;\n\n uint256 public currentCycle;\n uint256 public previousCycle;\n\n /// @notice The number of whitelisted darknodes this cycle\n uint256 public shareCount;\n\n /// @notice The list of tokens that will be registered next cycle.\n /// We only update the shareCount at the change of cycle to\n /// prevent the number of shares from changing.\n address[] public pendingTokens;\n\n /// @notice The list of tokens which are already registered and rewards can\n /// be claimed for.\n address[] public registeredTokens;\n\n /// @notice Mapping from token -> index. Index starts from 1. 0 means not in\n /// list.\n mapping(address => uint256) public registeredTokenIndex;\n\n /// @notice Mapping from token -> amount.\n /// The amount of rewards allocated for all darknodes to claim into\n /// their account.\n mapping(address => uint256) public unclaimedRewards;\n\n /// @notice Mapping from token -> amount.\n /// The amount of rewards allocated for each darknode.\n mapping(address => uint256) public previousCycleRewardShare;\n\n /// @notice The time that the current cycle started.\n uint256 public cycleStartTime;\n\n /// @notice The minimum duration that the current cycle must go for.\n uint256 public cycleDuration;\n\n /// @notice The earliest timestamp that changeCycle() can be called.\n uint256 public cycleTimeout;\n\n /// @notice Mapping of darknode -> cycle -> already_claimed\n /// Used to keep track of which darknodes have already claimed their\n /// rewards.\n mapping(address => mapping(uint256 => bool)) public rewardClaimed;\n\n /// @notice Emitted when a darknode is blacklisted from receiving rewards\n /// @param _darknode The address of the darknode which was blacklisted\n /// @param _time The time at which the darknode was blacklisted\n event LogDarknodeBlacklisted(address indexed _darknode, uint256 _time);\n\n /// @notice Emitted when a darknode is whitelisted to receive rewards\n /// @param _darknode The address of the darknode which was whitelisted\n /// @param _time The time at which the darknode was whitelisted\n event LogDarknodeWhitelisted(address indexed _darknode, uint256 _time);\n\n /// @notice Emitted when a darknode claims their share of reward\n /// @param _darknode The darknode which claimed\n /// @param _cycle The cycle that the darknode claimed for\n event LogDarknodeClaim(address indexed _darknode, uint256 _cycle);\n\n /// @notice Emitted when someone pays the DarknodePayment contract\n /// @param _payer The darknode which claimed\n /// @param _amount The cycle that the darknode claimed for\n /// @param _token The address of the token that was transferred\n event LogPaymentReceived(address indexed _payer, uint256 _amount, address _token);\n\n /// @notice Emitted when a darknode calls withdraw\n /// @param _payee The address of the darknode which withdrew\n /// @param _value The amount of DAI withdrawn\n /// @param _token The address of the token that was withdrawn\n event LogDarknodeWithdrew(address indexed _payee, uint256 _value, address _token);\n\n /// @notice Emitted when a new cycle happens\n /// @param _newCycle The new, current cycle\n /// @param _lastCycle The previous cycle\n /// @param _cycleTimeout The earliest a new cycle can be called\n event LogNewCycle(uint256 _newCycle, uint256 _lastCycle, uint256 _cycleTimeout);\n\n /// @notice Emitted when the cycle duration changes\n /// @param _newDuration The new duration\n /// @param _oldDuration The old duration\n event LogCycleDurationChanged(uint256 _newDuration, uint256 _oldDuration);\n\n /// @notice Emitted when the Blacklister contract changes\n /// @param _newBlacklister The new Blacklister\n /// @param _oldBlacklister The old Blacklister\n event LogBlacklisterChanged(address _newBlacklister, address _oldBlacklister);\n\n /// @notice Emitted when a new token is registered\n /// @param _token The token that was registered\n event LogTokenRegistered(address _token);\n\n /// @notice Emitted when a token is deregistered\n /// @param _token The token that was deregistered\n event LogTokenDeregistered(address _token);\n\n /// @notice Restrict a function registered dark nodes to call a function.\n modifier onlyDarknode(address _darknode) {\n require(darknodeRegistry.isRegistered(_darknode), \"darknode is not registered\");\n _;\n }\n\n /// @notice Restrict a function the blacklister.\n modifier onlyBlacklister() {\n require(blacklister == msg.sender, \"not Blacklister\");\n _;\n }\n\n /// @notice Restrict a function darknodes which haven't been blacklisted\n modifier notBlacklisted(address _darknode) {\n require(!store.isBlacklisted(_darknode), \"darknode is blacklisted\");\n _;\n }\n\n /// @notice The contract constructor. Starts the current cycle using the\n /// time of deploy.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _darknodeRegistry The address of the DarknodeRegistry contract\n /// @param _darknodePaymentStore The address of the DarknodePaymentStore\n /// contract\n /// @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds\n constructor(\n string memory _VERSION,\n DarknodeRegistry _darknodeRegistry,\n DarknodePaymentStore _darknodePaymentStore,\n uint256 _cycleDurationSeconds\n ) public {\n VERSION = _VERSION;\n darknodeRegistry = _darknodeRegistry;\n store = _darknodePaymentStore;\n cycleDuration = _cycleDurationSeconds;\n // Default the blacklister to owner\n blacklister = msg.sender;\n\n // Start the current cycle\n currentCycle = block.number;\n cycleStartTime = block.timestamp;\n cycleTimeout = cycleStartTime.add(cycleDuration);\n }\n\n /// @notice Transfers the funds allocated to the darknode to the darknode\n /// owner.\n ///\n /// @param _darknode The address of the darknode\n /// @param _token Which token to transfer\n function withdraw(address _darknode, address _token) public {\n address payable darknodeOwner = darknodeRegistry.getDarknodeOwner(_darknode);\n require(darknodeOwner != address(0x0), \"invalid darknode owner\");\n\n uint256 amount = store.darknodeBalances(_darknode, _token);\n require(amount > 0, \"nothing to withdraw\");\n\n store.transfer(_darknode, _token, amount, darknodeOwner);\n emit LogDarknodeWithdrew(_darknode, amount, _token);\n }\n\n function withdrawMultiple(address _darknode, address[] calldata _tokens) external {\n for (uint i = 0; i < _tokens.length; i++) {\n withdraw(_darknode, _tokens[i]);\n }\n }\n\n /// @notice Forward all payments to the DarknodePaymentStore.\n function () external payable {\n address(store).transfer(msg.value);\n emit LogPaymentReceived(msg.sender, msg.value, ETHEREUM);\n }\n\n /// @notice The current balance of the contract available as reward for the\n /// current cycle\n function currentCycleRewardPool(address _token) external view returns (uint256) {\n return store.availableBalance(_token).sub(unclaimedRewards[_token]);\n }\n\n function darknodeBalances(address _darknodeID, address _token) external view returns (uint256) {\n return store.darknodeBalances(_darknodeID, _token);\n }\n\n /// @notice Changes the current cycle.\n function changeCycle() external returns (uint256) {\n require(now >= cycleTimeout, \"cannot cycle yet: too early\");\n require(block.number != currentCycle, \"no new block\");\n\n // Snapshot balances for the past cycle\n uint arrayLength = registeredTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n _snapshotBalance(registeredTokens[i]);\n }\n\n // Start a new cycle\n previousCycle = currentCycle;\n currentCycle = block.number;\n cycleStartTime = block.timestamp;\n cycleTimeout = cycleStartTime.add(cycleDuration);\n\n // Update the share size for next cycle\n shareCount = store.darknodeWhitelistLength();\n // Update the list of registeredTokens\n _updateTokenList();\n\n emit LogNewCycle(currentCycle, previousCycle, cycleTimeout);\n return currentCycle;\n }\n\n /// @notice Deposits token into the contract to be paid to the Darknodes\n ///\n /// @param _value The amount of token deposit in the token's smallest unit.\n /// @param _token The token address\n function deposit(uint256 _value, address _token) external payable {\n uint256 receivedValue;\n if (_token == ETHEREUM) {\n require(_value == msg.value, \"mismatched deposit value\");\n receivedValue = msg.value;\n address(store).transfer(msg.value);\n } else {\n require(msg.value == 0, \"unexpected ether transfer\");\n // Forward the funds to the store\n receivedValue = ERC20(_token).safeTransferFromWithFees(msg.sender, address(store), _value);\n }\n emit LogPaymentReceived(msg.sender, receivedValue, _token);\n }\n\n /// @notice Claims the rewards allocated to the darknode last cycle and\n /// increments the darknode balances. Whitelists the darknode if it\n /// hasn't already been whitelisted. If a darknode does not call\n /// claim() then the rewards for the previous cycle is lost.\n ///\n /// @param _darknode The address of the darknode to claim\n function claim(address _darknode) external onlyDarknode(_darknode) notBlacklisted(_darknode) {\n uint256 whitelistedTime = store.darknodeWhitelist(_darknode);\n\n // The darknode hasn't been whitelisted before\n if (whitelistedTime == 0) {\n store.whitelist(_darknode);\n emit LogDarknodeWhitelisted(_darknode, now);\n return;\n }\n\n require(whitelistedTime < cycleStartTime, \"cannot claim for this cycle\");\n\n // Claim share of rewards allocated for last cycle\n _claimDarknodeReward(_darknode);\n emit LogDarknodeClaim(_darknode, previousCycle);\n }\n\n /// @notice Blacklists a darknode from participating in rewards.\n ///\n /// @param _darknode The address of the darknode to blacklist\n function blacklist(address _darknode) external onlyBlacklister onlyDarknode(_darknode) {\n store.blacklist(_darknode);\n emit LogDarknodeBlacklisted(_darknode, now);\n }\n\n /// @notice Adds tokens to be payable. Registration is pending until next\n /// cycle.\n ///\n /// @param _token The address of the token to be registered.\n function registerToken(address _token) external onlyOwner {\n require(registeredTokenIndex[_token] == 0, \"token already registered\");\n uint arrayLength = pendingTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n require(pendingTokens[i] != _token, \"token already pending registration\");\n }\n pendingTokens.push(_token);\n }\n\n /// @notice Removes a token from the list of supported tokens.\n /// Deregistration is pending until next cycle.\n ///\n /// @param _token The address of the token to be deregistered.\n function deregisterToken(address _token) external onlyOwner {\n require(registeredTokenIndex[_token] > 0, \"token not registered\");\n _deregisterToken(_token);\n }\n\n /// @notice Updates the Blacklister contract address.\n ///\n /// @param _addr The new Blacklister contract address.\n function updateBlacklister(address _addr) external onlyOwner {\n require(_addr != address(0), \"invalid contract address\");\n emit LogBlacklisterChanged(_addr, blacklister);\n blacklister = _addr;\n }\n\n /// @notice Updates cycle duration\n ///\n /// @param _durationSeconds The amount of time (in seconds) that should have\n /// passed before a new cycle can be called.\n function updateCycleDuration(uint256 _durationSeconds) external onlyOwner {\n uint256 oldDuration = cycleDuration;\n cycleDuration = _durationSeconds;\n emit LogCycleDurationChanged(cycleDuration, oldDuration);\n }\n\n /// @notice Allows the contract owner to initiate an ownership transfer of\n /// the DarknodePaymentStore.\n ///\n /// @param _newOwner The address to transfer the ownership to.\n function transferStoreOwnership(address _newOwner) external onlyOwner {\n store.transferOwnership(_newOwner);\n }\n\n /// @notice Claims ownership of the store passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called when\n /// transferring from another DarknodePaymentStore.\n function claimStoreOwnership() external onlyOwner {\n store.claimOwnership();\n }\n\n /// @notice Claims the darknode reward for all registered tokens into\n /// darknodeBalances in the DarknodePaymentStore.\n /// Rewards can only be claimed once per cycle.\n ///\n /// @param _darknode The address to the darknode to claim rewards for\n function _claimDarknodeReward(address _darknode) private {\n require(!rewardClaimed[_darknode][previousCycle], \"reward already claimed\");\n rewardClaimed[_darknode][previousCycle] = true;\n uint arrayLength = registeredTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n address token = registeredTokens[i];\n\n // Only increment balance if shares were allocated last cycle\n if (previousCycleRewardShare[token] > 0) {\n unclaimedRewards[token] = unclaimedRewards[token].sub(previousCycleRewardShare[token]);\n store.incrementDarknodeBalance(_darknode, token, previousCycleRewardShare[token]);\n }\n }\n }\n\n /// @notice Snapshots the current balance of the tokens, for all registered\n /// tokens.\n ///\n /// @param _token The address the token to snapshot.\n function _snapshotBalance(address _token) private {\n if (shareCount == 0) {\n unclaimedRewards[_token] = 0;\n previousCycleRewardShare[_token] = 0;\n } else {\n // Lock up the current balance for darknode reward allocation\n unclaimedRewards[_token] = store.availableBalance(_token);\n previousCycleRewardShare[_token] = unclaimedRewards[_token].div(shareCount);\n }\n }\n\n /// @notice Deregisters a token, removing it from the list of\n /// registeredTokens.\n ///\n /// @param _token The address of the token to deregister.\n function _deregisterToken(address _token) private {\n address lastToken = registeredTokens[registeredTokens.length.sub(1)];\n uint256 deletedTokenIndex = registeredTokenIndex[_token].sub(1);\n // Move the last token to _token's position and update it's index\n registeredTokens[deletedTokenIndex] = lastToken;\n registeredTokenIndex[lastToken] = registeredTokenIndex[_token];\n // Decreasing the length will clean up the storage for us\n // So we don't need to manually delete the element\n registeredTokens.length = registeredTokens.length.sub(1);\n registeredTokenIndex[_token] = 0;\n\n emit LogTokenDeregistered(_token);\n }\n\n /// @notice Updates the list of registeredTokens adding tokens that are to be registered.\n /// The list of tokens that are pending registration are emptied afterwards.\n function _updateTokenList() private {\n // Register tokens\n uint arrayLength = pendingTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n address token = pendingTokens[i];\n registeredTokens.push(token);\n registeredTokenIndex[token] = registeredTokens.length;\n emit LogTokenRegistered(token);\n }\n pendingTokens.length = 0;\n }\n\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "exportedSymbols": { - "DarknodePayment": [ - 959 - ] - }, - "id": 960, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 13, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7653, - "src": "25:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 14, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7542, - "src": "89:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 15, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 8050, - "src": "149:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 16, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 4818, - "src": "214:51:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 17, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 2391, - "src": "266:50:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "file": "./DarknodePaymentStore.sol", - "id": 18, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 1288, - "src": "317:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 20, - "nodeType": "InheritanceSpecifier", - "src": "486:7:1" - } - ], - "contractDependencies": [ - 7652 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePayment is responsible for paying off darknodes for their\n computation.", - "fullyImplemented": true, - "id": 959, - "linearizedBaseContracts": [ - 959, - 7652 - ], - "name": "DarknodePayment", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 23, - "libraryName": { - "contractScope": null, - "id": 21, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "506:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "500:27:1", - "typeName": { - "id": 22, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 26, - "libraryName": { - "contractScope": null, - "id": 24, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4817, - "src": "538:24:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4817", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "532:41:1", - "typeName": { - "contractScope": null, - "id": 25, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8049, - "src": "567:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 28, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "579:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 27, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "695:77:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:42:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 33, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "779:40:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 32, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "779:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 35, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "967:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 34, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "967:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 37, - "name": "blacklister", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1102:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "currentCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1135:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 38, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 41, - "name": "previousCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1168:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1168:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "shareCount", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1266:25:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "pendingTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1501:30:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 45, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1501:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "registeredTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1650:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 48, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1650:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "registeredTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1793:55:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1793:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 51, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 57, - "name": "unclaimedRewards", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2012:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 56, - "keyType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2012:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 55, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 61, - "name": "previousCycleRewardShare", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2183:59:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 60, - "keyType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2183:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 59, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 63, - "name": "cycleStartTime", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2306:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 62, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 65, - "name": "cycleDuration", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2415:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 67, - "name": "cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2523:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 66, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2523:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 73, - "name": "rewardClaimed", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2727:65:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "typeName": { - "id": 72, - "keyType": { - "id": 68, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2735:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2727:44:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "valueType": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2746:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 70, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is blacklisted from receiving rewards\n @param _darknode The address of the darknode which was blacklisted\n @param _time The time at which the darknode was blacklisted", - "id": 79, - "name": "LogDarknodeBlacklisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3049:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3076:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3048:42:1" - }, - "src": "3020:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is whitelisted to receive rewards\n @param _darknode The address of the darknode which was whitelisted\n @param _time The time at which the darknode was whitelisted", - "id": 85, - "name": "LogDarknodeWhitelisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3343:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 83, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3370:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3342:42:1" - }, - "src": "3314:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode claims their share of reward\n @param _darknode The darknode which claimed\n @param _cycle The cycle that the darknode claimed for", - "id": 91, - "name": "LogDarknodeClaim", - "nodeType": "EventDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3597:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 86, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3597:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "indexed": false, - "name": "_cycle", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3624:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:43:1" - }, - "src": "3574:66:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when someone pays the DarknodePayment contract\n @param _payer The darknode which claimed\n @param _amount The cycle that the darknode claimed for\n @param _token The address of the token that was transferred", - "id": 99, - "name": "LogPaymentReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "indexed": true, - "name": "_payer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3922:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3946:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 94, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3963:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 96, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3963:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:57:1" - }, - "src": "3897:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode calls withdraw\n @param _payee The address of the darknode which withdrew\n @param _value The amount of DAI withdrawn\n @param _token The address of the token that was withdrawn", - "id": 107, - "name": "LogDarknodeWithdrew", - "nodeType": "EventDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "indexed": true, - "name": "_payee", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4247:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4247:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4287:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:56:1" - }, - "src": "4221:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new cycle happens\n @param _newCycle The new, current cycle\n @param _lastCycle The previous cycle\n @param _cycleTimeout The earliest a new cycle can be called", - "id": 115, - "name": "LogNewCycle", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "indexed": false, - "name": "_newCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4537:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4537:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "indexed": false, - "name": "_lastCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4556:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4556:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4576:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4576:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4536:62:1" - }, - "src": "4519:80:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the cycle duration changes\n @param _newDuration The new duration\n @param _oldDuration The old duration", - "id": 121, - "name": "LogCycleDurationChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "indexed": false, - "name": "_newDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4781:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "indexed": false, - "name": "_oldDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4803:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4780:44:1" - }, - "src": "4751:74:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the Blacklister contract changes\n @param _newBlacklister The new Blacklister\n @param _oldBlacklister The old Blacklister", - "id": 127, - "name": "LogBlacklisterChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "indexed": false, - "name": "_newBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5023:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "indexed": false, - "name": "_oldBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5048:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5048:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5022:50:1" - }, - "src": "4995:78:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new token is registered\n @param _token The token that was registered", - "id": 131, - "name": "LogTokenRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "5211:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5211:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5210:16:1" - }, - "src": "5186:41:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a token is deregistered\n @param _token The token that was deregistered", - "id": 135, - "name": "LogTokenDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "5367:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5366:16:1" - }, - "src": "5340:43:1" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "5508:107:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 142, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "5556:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 140, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "5526:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 2178, - "src": "5526:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f6465206973206e6f742072656769737465726564", - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:28:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - }, - "value": "darknode is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - } - ], - "id": 139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5518:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "5518:79:1" - }, - { - "id": 147, - "nodeType": "PlaceholderStatement", - "src": "5607:1:1" - } - ] - }, - "documentation": "@notice Restrict a function registered dark nodes to call a function.", - "id": 149, - "name": "onlyDarknode", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 137, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "5489:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5488:19:1" - }, - "src": "5467:148:1", - "visibility": "internal" - }, - { - "body": { - "id": 160, - "nodeType": "Block", - "src": "5701:81:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 152, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "5719:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "5734:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5719:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420426c61636b6c6973746572", - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5746:17:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - }, - "value": "not Blacklister" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - } - ], - "id": 151, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5711:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5711:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 158, - "nodeType": "ExpressionStatement", - "src": "5711:53:1" - }, - { - "id": 159, - "nodeType": "PlaceholderStatement", - "src": "5774:1:1" - } - ] - }, - "documentation": "@notice Restrict a function the blacklister.", - "id": 161, - "name": "onlyBlacklister", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 150, - "nodeType": "ParameterList", - "parameters": [], - "src": "5698:2:1" - }, - "src": "5674:108:1", - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "5908:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5926:31:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5947:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 166, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "5927:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isBlacklisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1027, - "src": "5927:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5927:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:25:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "5918:67:1" - }, - { - "id": 174, - "nodeType": "PlaceholderStatement", - "src": "5995:1:1" - } - ] - }, - "documentation": "@notice Restrict a function darknodes which haven't been blacklisted", - "id": 176, - "name": "notBlacklisted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "5889:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5889:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5888:19:1" - }, - "src": "5865:138:1", - "visibility": "internal" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "6655:418:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 187, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "6665:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 188, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "6675:8:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6665:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "6665:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 191, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "6693:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 192, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6712:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "6693:36:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "6693:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 195, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "6739:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 196, - "name": "_darknodePaymentStore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "6747:21:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "src": "6739:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 198, - "nodeType": "ExpressionStatement", - "src": "6739:29:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 199, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "6778:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 200, - "name": "_cycleDurationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6794:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6778:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "6778:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 203, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "6869:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 204, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "6883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6869:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "6869:24:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 208, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "6939:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6939:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 212, - "nodeType": "ExpressionStatement", - "src": "6939:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 213, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "6976:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 214, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "6993:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6993:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6976:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "6976:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7018:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 221, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "7052:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 219, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "7033:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "7033:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7033:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7018:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 224, - "nodeType": "ExpressionStatement", - "src": "7018:48:1" - } - ] - }, - "documentation": "@notice The contract constructor. Starts the current cycle using the\n time of deploy.\n\n /// @param _VERSION A string defining the contract version.\n @param _darknodeRegistry The address of the DarknodeRegistry contract\n @param _darknodePaymentStore The address of the DarknodePaymentStore\n contract\n @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds", - "id": 226, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6484:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 177, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6484:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 180, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6516:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 179, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "6516:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "name": "_darknodePaymentStore", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6560:42:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 181, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "6560:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "name": "_cycleDurationSeconds", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6612:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6474:173:1" - }, - "returnParameters": { - "id": 186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6655:0:1" - }, - "scope": 959, - "src": "6463:610:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "7347:416:1", - "statements": [ - { - "assignments": [ - 234 - ], - "declarations": [ - { - "constant": false, - "id": 234, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7357:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7357:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 237, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7423:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 235, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "7389:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDarknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1934, - "src": "7389:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7389:44:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7357:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7451:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7468:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7451:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206461726b6e6f6465206f776e6572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - }, - "value": "invalid darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "7443:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7443:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "7443:64:1" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7518:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 253, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7558:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 251, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7535:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "7535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7535:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7518:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7603:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7594:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7468696e6720746f207769746864726177", - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7606:21:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - }, - "value": "nothing to withdraw" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - } - ], - "id": 257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "7586:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7586:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 263, - "nodeType": "ExpressionStatement", - "src": "7586:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 267, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7654:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 268, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7665:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7673:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7681:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 264, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7639:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1286, - "src": "7639:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,address,uint256,address payable) external" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7639:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "7639:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 274, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7730:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7741:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7749:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 273, - "name": "LogDarknodeWithdrew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7710:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7710:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 278, - "nodeType": "EmitStatement", - "src": "7705:51:1" - } - ] - }, - "documentation": "@notice Transfers the funds allocated to the darknode to the darknode\n owner.\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer", - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7305:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7305:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7324:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7324:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7304:35:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "7347:0:1" - }, - "scope": 959, - "src": "7287:476:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 308, - "nodeType": "Block", - "src": "7851:114:1", - "statements": [ - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "7903:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 300, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7926:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7937:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 303, - "indexExpression": { - "argumentTypes": null, - "id": 302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7945:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7917:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7917:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 305, - "nodeType": "ExpressionStatement", - "src": "7917:31:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 292, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 293, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7882:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7878:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 307, - "initializationExpression": { - "assignments": [ - 289 - ], - "declarations": [ - { - "constant": false, - "id": 289, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "7866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 291, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7898:3:1", - "subExpression": { - "argumentTypes": null, - "id": 296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7898:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "7898:3:1" - }, - "nodeType": "ForStatement", - "src": "7861:98:1" - } - ] - }, - "documentation": null, - "id": 309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawMultiple", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7795:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7795:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7814:26:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7814:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 284, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7814:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7794:47:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [], - "src": "7851:0:1" - }, - "scope": 959, - "src": "7769:196:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 328, - "nodeType": "Block", - "src": "8066:117:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 316, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "8100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8084:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8076:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 319, - "nodeType": "ExpressionStatement", - "src": "8076:34:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 321, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "8144:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8144:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 323, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "8156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8156:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 325, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "8167:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 320, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8125:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 327, - "nodeType": "EmitStatement", - "src": "8120:56:1" - } - ] - }, - "documentation": "@notice Forward all payments to the DarknodePaymentStore.", - "id": 329, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [], - "src": "8046:2:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "8066:0:1" - }, - "scope": 959, - "src": "8037:146:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 346, - "nodeType": "Block", - "src": "8379:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 341, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "8431:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 343, - "indexExpression": { - "argumentTypes": null, - "id": 342, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8448:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8431:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 338, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 336, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8396:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "8396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "8396:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 335, - "id": 345, - "nodeType": "Return", - "src": "8389:67:1" - } - ] - }, - "documentation": "@notice The current balance of the contract available as reward for the\n current cycle", - "id": 347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCycleRewardPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 331, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8331:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8330:16:1" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8370:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8369:9:1" - }, - "scope": 959, - "src": "8299:164:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "8564:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 349, - "src": "8604:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 359, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 351, - "src": "8617:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 356, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "8581:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8581:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 355, - "id": 361, - "nodeType": "Return", - "src": "8574:50:1" - } - ] - }, - "documentation": null, - "id": 363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "darknodeBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 349, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8495:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8495:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 351, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8516:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8516:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8494:37:1" - }, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8555:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8555:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8554:9:1" - }, - "scope": 959, - "src": "8469:162:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 444, - "nodeType": "Block", - "src": "8730:832:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8345, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 370, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "8755:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8748:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f74206379636c65207965743a20746f6f206561726c79", - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8769:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - }, - "value": "cannot cycle yet: too early" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - } - ], - "id": 368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "8740:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:59:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 374, - "nodeType": "ExpressionStatement", - "src": "8740:59:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8817:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 378, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "8833:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8817:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f206e657720626c6f636b", - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8847:14:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - }, - "value": "no new block" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - } - ], - "id": 375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "8809:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8809:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8809:53:1" - }, - { - "assignments": [ - 384 - ], - "declarations": [ - { - "constant": false, - "id": 384, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "8921:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 387, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 385, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8940:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8921:42:1" - }, - { - "body": { - "id": 404, - "nodeType": "Block", - "src": "9012:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 399, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "9043:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 401, - "indexExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9060:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9043:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 398, - "name": "_snapshotBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "9026:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9026:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "9026:37:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "8990:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 393, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "8994:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8990:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 405, - "initializationExpression": { - "assignments": [ - 389 - ], - "declarations": [ - { - "constant": false, - "id": 389, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "8978:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8978:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9007:3:1", - "subExpression": { - "argumentTypes": null, - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9007:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "9007:3:1" - }, - "nodeType": "ForStatement", - "src": "8973:101:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 406, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9113:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 407, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9129:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9113:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "9113:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 410, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9151:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 411, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "9166:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9166:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9151:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "9151:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 415, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9188:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 416, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "9205:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9205:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9188:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "nodeType": "ExpressionStatement", - "src": "9188:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 420, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9230:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 423, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9245:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "9245:18:1", - "typeDescriptions": { - "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": "9245:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9230:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9230:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "9337:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 428, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "9350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelistLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 981, - "src": "9350:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9350:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9337:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "9337:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 433, - "name": "_updateTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "9438:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9438:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9438:18:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9484:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9498:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 439, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9513:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 436, - "name": "LogNewCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "9472:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 441, - "nodeType": "EmitStatement", - "src": "9467:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 442, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9543:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 367, - "id": 443, - "nodeType": "Return", - "src": "9536:19:1" - } - ] - }, - "documentation": "@notice Changes the current cycle.", - "id": 445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeCycle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 364, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:2:1" - }, - "returnParameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "8721:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8720:9:1" - }, - "scope": 959, - "src": "8680:882:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 511, - "nodeType": "Block", - "src": "9839:540:1", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 511, - "src": "9849:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9849:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 454, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9849:21:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 455, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "9884:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 456, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "9894:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9884:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 502, - "nodeType": "Block", - "src": "10078:227:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10113:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10100:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "756e6578706563746564206574686572207472616e73666572", - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10116:27:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - }, - "value": "unexpected ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "10092:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10092:52:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 487, - "nodeType": "ExpressionStatement", - "src": "10092:52:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 488, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10204:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10259:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10259:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10271:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 498, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "10287:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 489, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8049, - "src": "10220:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8049_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - }, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFromWithFees", - "nodeType": "MemberAccess", - "referencedDeclaration": 4641, - "src": "10220:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8309_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$bound_to$_t_contract$_IERC20_$8309_$", - "typeString": "function (contract IERC20,address,address,uint256) returns (uint256)" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:74:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10204:90:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "10204:90:1" - } - ] - }, - "id": 503, - "nodeType": "IfStatement", - "src": "9880:425:1", - "trueBody": { - "id": 479, - "nodeType": "Block", - "src": "9904:168:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 459, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "9926:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "9936:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9936:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9926:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d69736d617463686564206465706f7369742076616c7565", - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9947:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - }, - "value": "mismatched deposit value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - } - ], - "id": 458, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "9918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9918:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "9918:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 466, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "9988:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10004:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10004:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9988:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "9988:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10051:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10051:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10027:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10027:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "10027:34:1" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 505, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10338:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10338:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10350:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10365:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 504, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "10319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10319:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "EmitStatement", - "src": "10314:58:1" - } - ] - }, - "documentation": "@notice Deposits token into the contract to be paid to the Darknodes\n\n /// @param _value The amount of token deposit in the token's smallest unit.\n @param _token The token address", - "id": 512, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9790:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9806:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9806:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9789:32:1" - }, - "returnParameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [], - "src": "9839:0:1" - }, - "scope": 959, - "src": "9773:606:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "10854:537:1", - "statements": [ - { - "assignments": [ - 524 - ], - "declarations": [ - { - "constant": false, - "id": 524, - "name": "whitelistedTime", - "nodeType": "VariableDeclaration", - "scope": 563, - "src": "10864:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 529, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 527, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10914:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 525, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10890:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 999, - "src": "10890:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10890:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10864:60:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "10994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10994:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 546, - "nodeType": "IfStatement", - "src": "10990:154:1", - "trueBody": { - "id": 545, - "nodeType": "Block", - "src": "11016:128:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11046:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 533, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "whitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1161, - "src": "11030:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11030:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "11030:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 540, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11098:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 541, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8345, - "src": "11109:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 539, - "name": "LogDarknodeWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "11075:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11075:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 543, - "nodeType": "EmitStatement", - "src": "11070:43:1" - }, - { - "expression": null, - "functionReturnParameters": 522, - "id": 544, - "nodeType": "Return", - "src": "11127:7:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 548, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11162:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 549, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "11180:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11162:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420636c61696d20666f722074686973206379636c65", - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11196:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - }, - "value": "cannot claim for this cycle" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - } - ], - "id": 547, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "11154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11154:72:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11154:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 555, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11317:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 554, - "name": "_claimDarknodeReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "11296:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11296:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 557, - "nodeType": "ExpressionStatement", - "src": "11296:31:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 559, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11359:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 560, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "11370:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 558, - "name": "LogDarknodeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11342:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 562, - "nodeType": "EmitStatement", - "src": "11337:47:1" - } - ] - }, - "documentation": "@notice Claims the rewards allocated to the darknode last cycle and\n increments the darknode balances. Whitelists the darknode if it\n hasn't already been whitelisted. If a darknode does not call\n claim() then the rewards for the previous cycle is lost.\n\n /// @param _darknode The address of the darknode to claim", - "id": 564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10817:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 518, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "10804:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10804:23:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 520, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10843:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 521, - "modifierName": { - "argumentTypes": null, - "id": 519, - "name": "notBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "10828:14:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10828:25:1" - } - ], - "name": "claim", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "10776:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10776:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10775:19:1" - }, - "returnParameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10854:0:1" - }, - "scope": 959, - "src": "10761:630:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 585, - "nodeType": "Block", - "src": "11627:96:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 577, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11653:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 574, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11637:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "blacklist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1127, - "src": "11637:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11637:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "11637:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 581, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11701:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 582, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8345, - "src": "11712:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 580, - "name": "LogDarknodeBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "11678:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11678:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 584, - "nodeType": "EmitStatement", - "src": "11673:43:1" - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in rewards.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 569, - "modifierName": { - "argumentTypes": null, - "id": 568, - "name": "onlyBlacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11587:15:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11587:15:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11616:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 572, - "modifierName": { - "argumentTypes": null, - "id": 570, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "11603:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11603:23:1" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "11559:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11559:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11558:19:1" - }, - "returnParameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "11627:0:1" - }, - "scope": 959, - "src": "11540:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "11961:318:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 594, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "11979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 596, - "indexExpression": { - "argumentTypes": null, - "id": 595, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12000:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11979:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12011:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11979:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12014:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "11971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11971:70:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "11971:70:1" - }, - { - "assignments": [ - 603 - ], - "declarations": [ - { - "constant": false, - "id": 603, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 634, - "src": "12051:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 606, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 604, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12070:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12070:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12051:39:1" - }, - { - "body": { - "id": 626, - "nodeType": "Block", - "src": "12139:98:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 618, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12161:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 620, - "indexExpression": { - "argumentTypes": null, - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12175:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12161:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 621, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12181:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12161:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e", - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - }, - "value": "token already pending registration" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - } - ], - "id": 617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12153:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12153:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 625, - "nodeType": "ExpressionStatement", - "src": "12153:73:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 611, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12117:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 612, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "12121:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12117:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 627, - "initializationExpression": { - "assignments": [ - 608 - ], - "declarations": [ - { - "constant": false, - "id": 608, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 627, - "src": "12105:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 607, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12105:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 610, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12114:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12105:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12134:3:1", - "subExpression": { - "argumentTypes": null, - "id": 614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12134:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 616, - "nodeType": "ExpressionStatement", - "src": "12134:3:1" - }, - "nodeType": "ForStatement", - "src": "12100:137:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12265:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12246:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12246:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12246:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "12246:26:1" - } - ] - }, - "documentation": "@notice Adds tokens to be payable. Registration is pending until next\n cycle.\n\n /// @param _token The address of the token to be registered.", - "id": 635, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 591, - "modifierName": { - "argumentTypes": null, - "id": 590, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "11951:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11951:9:1" - } - ], - "name": "registerToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "11926:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11926:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11925:16:1" - }, - "returnParameters": { - "id": 592, - "nodeType": "ParameterList", - "parameters": [], - "src": "11961:0:1" - }, - "scope": 959, - "src": "11903:376:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 655, - "nodeType": "Block", - "src": "12547:116:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 643, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12565:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 645, - "indexExpression": { - "argumentTypes": null, - "id": 644, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12565:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12596:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12565:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12599:22:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12557:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12557:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "ExpressionStatement", - "src": "12557:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 651, - "name": "_deregisterToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "12632:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12632:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 654, - "nodeType": "ExpressionStatement", - "src": "12632:24:1" - } - ] - }, - "documentation": "@notice Removes a token from the list of supported tokens.\n Deregistration is pending until next cycle.\n\n /// @param _token The address of the token to be deregistered.", - "id": 656, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 640, - "modifierName": { - "argumentTypes": null, - "id": 639, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "12537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12537:9:1" - } - ], - "name": "deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "12512:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12512:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12511:16:1" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [], - "src": "12547:0:1" - }, - "scope": 959, - "src": "12487:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 681, - "nodeType": "Block", - "src": "12855:158:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 664, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12873:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12890:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12873:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420636f6e74726163742061646472657373", - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12894:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - }, - "value": "invalid contract address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12865:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12865:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 671, - "nodeType": "ExpressionStatement", - "src": "12865:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 673, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 674, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12965:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 672, - "name": "LogBlacklisterChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12936:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12936:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 676, - "nodeType": "EmitStatement", - "src": "12931:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 677, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12987:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 678, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13001:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12987:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 680, - "nodeType": "ExpressionStatement", - "src": "12987:19:1" - } - ] - }, - "documentation": "@notice Updates the Blacklister contract address.\n\n /// @param _addr The new Blacklister contract address.", - "id": 682, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 661, - "modifierName": { - "argumentTypes": null, - "id": 660, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "12845:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12845:9:1" - } - ], - "name": "updateBlacklister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "12821:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12821:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12820:15:1" - }, - "returnParameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [], - "src": "12855:0:1" - }, - "scope": 959, - "src": "12794:219:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 702, - "nodeType": "Block", - "src": "13277:160:1", - "statements": [ - { - "assignments": [ - 690 - ], - "declarations": [ - { - "constant": false, - "id": 690, - "name": "oldDuration", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "13287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 692, - "initialValue": { - "argumentTypes": null, - "id": 691, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13309:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13287:35:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 693, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13332:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 694, - "name": "_durationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "13348:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13332:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 696, - "nodeType": "ExpressionStatement", - "src": "13332:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 698, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13403:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 699, - "name": "oldDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "13418:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 697, - "name": "LogCycleDurationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "13379:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13379:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 701, - "nodeType": "EmitStatement", - "src": "13374:56:1" - } - ] - }, - "documentation": "@notice Updates cycle duration\n\n /// @param _durationSeconds The amount of time (in seconds) that should have\n passed before a new cycle can be called.", - "id": 703, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 687, - "modifierName": { - "argumentTypes": null, - "id": 686, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "13267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13267:9:1" - } - ], - "name": "updateCycleDuration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 684, - "name": "_durationSeconds", - "nodeType": "VariableDeclaration", - "scope": 703, - "src": "13232:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13231:26:1" - }, - "returnParameters": { - "id": 688, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:0:1" - }, - "scope": 959, - "src": "13203:234:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "13709:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 713, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "13743:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 710, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "13719:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4441, - "src": "13719:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13719:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "13719:34:1" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodePaymentStore.\n\n /// @param _newOwner The address to transfer the ownership to.", - "id": 717, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 708, - "modifierName": { - "argumentTypes": null, - "id": 707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "13699:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13699:9:1" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 705, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "13671:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13670:19:1" - }, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "13709:0:1" - }, - "scope": 959, - "src": "13639:121:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "14035:39:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 722, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14045:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4462, - "src": "14045:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14045:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "14045:22:1" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another DarknodePaymentStore.", - "id": 728, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 720, - "modifierName": { - "argumentTypes": null, - "id": 719, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "14025:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14025:9:1" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 718, - "nodeType": "ParameterList", - "parameters": [], - "src": "14013:2:1" - }, - "returnParameters": { - "id": 721, - "nodeType": "ParameterList", - "parameters": [], - "src": "14035:0:1" - }, - "scope": 959, - "src": "13985:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "14415:655:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14433:40:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 734, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14434:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 736, - "indexExpression": { - "argumentTypes": null, - "id": 735, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14448:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 738, - "indexExpression": { - "argumentTypes": null, - "id": 737, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14459:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "72657761726420616c726561647920636c61696d6564", - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14475:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - }, - "value": "reward already claimed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - } - ], - "id": 733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "14425:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14425:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 742, - "nodeType": "ExpressionStatement", - "src": "14425:75:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 743, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 746, - "indexExpression": { - "argumentTypes": null, - "id": 744, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14524:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14510:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 747, - "indexExpression": { - "argumentTypes": null, - "id": 745, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14510:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14510:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "nodeType": "ExpressionStatement", - "src": "14510:46:1" - }, - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "14566:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 755, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 753, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14585:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14585:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14566:42:1" - }, - { - "body": { - "id": 802, - "nodeType": "Block", - "src": "14657:407:1", - "statements": [ - { - "assignments": [ - 767 - ], - "declarations": [ - { - "constant": false, - "id": 767, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "14671:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 768, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14687:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 770, - "indexExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14704:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14671:35:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14799:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14824:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14799:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14799:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 801, - "nodeType": "IfStatement", - "src": "14795:259:1", - "trueBody": { - "id": 800, - "nodeType": "Block", - "src": "14836:218:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 777, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14854:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 779, - "indexExpression": { - "argumentTypes": null, - "id": 778, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14871:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14854:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 784, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14908:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 786, - "indexExpression": { - "argumentTypes": null, - "id": 785, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14933:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 780, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14880:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 782, - "indexExpression": { - "argumentTypes": null, - "id": 781, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14897:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14880:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "14880:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14880:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14854:86:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "14854:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15000:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15007:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15032:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15007:31:1", - "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": 790, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "incrementDarknodeBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1215, - "src": "14958:30:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14958:81:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "14958:81:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 760, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14635:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 761, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "14639:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14635:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 803, - "initializationExpression": { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 803, - "src": "14623:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14623:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 759, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14632:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14623:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14652:3:1", - "subExpression": { - "argumentTypes": null, - "id": 763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14652:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 765, - "nodeType": "ExpressionStatement", - "src": "14652:3:1" - }, - "nodeType": "ForStatement", - "src": "14618:446:1" - } - ] - }, - "documentation": "@notice Claims the darknode reward for all registered tokens into\n darknodeBalances in the DarknodePaymentStore.\n Rewards can only be claimed once per cycle.\n\n /// @param _darknode The address to the darknode to claim rewards for", - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimDarknodeReward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 805, - "src": "14388:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14388:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14387:19:1" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "14415:0:1" - }, - "scope": 959, - "src": "14358:712:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "15295:391:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 810, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15309:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15323:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15309:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 846, - "nodeType": "Block", - "src": "15435:245:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 826, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15523:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 828, - "indexExpression": { - "argumentTypes": null, - "id": 827, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15523:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15573:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "15550:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "15550:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15523:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "15523:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 835, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15594:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 837, - "indexExpression": { - "argumentTypes": null, - "id": 836, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15594:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 842, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15658:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 838, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15629:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 840, - "indexExpression": { - "argumentTypes": null, - "id": 839, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15646:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7519, - "src": "15629:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:40:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15594:75:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "15594:75:1" - } - ] - }, - "id": 847, - "nodeType": "IfStatement", - "src": "15305:375:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "15326:103:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 813, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15340:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 815, - "indexExpression": { - "argumentTypes": null, - "id": 814, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15357:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15340:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15367:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15340:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "15340:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 819, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15382:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 821, - "indexExpression": { - "argumentTypes": null, - "id": 820, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15382:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15417:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15382:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "15382:36:1" - } - ] - } - } - ] - }, - "documentation": "@notice Snapshots the current balance of the tokens, for all registered\n tokens.\n\n /// @param _token The address the token to snapshot.", - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_snapshotBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "15271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15271:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15270:16:1" - }, - "returnParameters": { - "id": 809, - "nodeType": "ParameterList", - "parameters": [], - "src": "15295:0:1" - }, - "scope": 959, - "src": "15245:441:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 907, - "nodeType": "Block", - "src": "15912:638:1", - "statements": [ - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "lastToken", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "15922:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 856, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15942:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 862, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15987:1:1", - "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": 857, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15959:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15959:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "15959:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15959:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15942:48:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15922:68:1" - }, - { - "assignments": [ - 865 - ], - "declarations": [ - { - "constant": false, - "id": 865, - "name": "deletedTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "16000:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 864, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16000:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16061:1:1", - "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": 866, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16028:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 868, - "indexExpression": { - "argumentTypes": null, - "id": 867, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16049:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16028:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "16028:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16000:63:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 873, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16147:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 875, - "indexExpression": { - "argumentTypes": null, - "id": 874, - "name": "deletedTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "16164:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16147:35:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 876, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16147:47:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "16147:47:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 879, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16204:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 881, - "indexExpression": { - "argumentTypes": null, - "id": 880, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16204:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 882, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16238:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 884, - "indexExpression": { - "argumentTypes": null, - "id": 883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16238:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16204:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 886, - "nodeType": "ExpressionStatement", - "src": "16204:62:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 887, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16401:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 889, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16401:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16455:1:1", - "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": 890, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16427:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16427:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "16427:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16427:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16401:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 896, - "nodeType": "ExpressionStatement", - "src": "16401:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 897, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16467:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "id": 898, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16488:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16467:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16498:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16467:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "16467:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16536:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "LogTokenDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "16515:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16515:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 906, - "nodeType": "EmitStatement", - "src": "16510:33:1" - } - ] - }, - "documentation": "@notice Deregisters a token, removing it from the list of\n registeredTokens.\n\n /// @param _token The address of the token to deregister.", - "id": 908, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 851, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 908, - "src": "15888:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15888:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15887:16:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "15912:0:1" - }, - "scope": 959, - "src": "15862:688:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "16775:375:1", - "statements": [ - { - "assignments": [ - 912 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "16812:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16812:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 915, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 913, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16831:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16831:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16812:39:1" - }, - { - "body": { - "id": 949, - "nodeType": "Block", - "src": "16900:210:1", - "statements": [ - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "16914:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16914:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 931, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 928, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16930:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16944:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16930:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16914:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 935, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "16982:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 932, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16960:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16960:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ExpressionStatement", - "src": "16960:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 938, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "17002:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 940, - "indexExpression": { - "argumentTypes": null, - "id": 939, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17023:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17002:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 941, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "17032:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17032:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17002:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 944, - "nodeType": "ExpressionStatement", - "src": "17002:53:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 945, - "name": "LogTokenRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "17074:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17074:25:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 948, - "nodeType": "EmitStatement", - "src": "17069:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 921, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "16882:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16878:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 950, - "initializationExpression": { - "assignments": [ - 917 - ], - "declarations": [ - { - "constant": false, - "id": 917, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 950, - "src": "16866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 919, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16895:3:1", - "subExpression": { - "argumentTypes": null, - "id": 923, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16895:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "16895:3:1" - }, - "nodeType": "ForStatement", - "src": "16861:249:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 951, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "17119:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 953, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17119:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17142:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17119:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 956, - "nodeType": "ExpressionStatement", - "src": "17119:24:1" - } - ] - }, - "documentation": "@notice Updates the list of registeredTokens adding tokens that are to be registered.\n The list of tokens that are pending registration are emptied afterwards.", - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_updateTokenList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 909, - "nodeType": "ParameterList", - "parameters": [], - "src": "16764:2:1" - }, - "returnParameters": { - "id": 910, - "nodeType": "ParameterList", - "parameters": [], - "src": "16775:0:1" - }, - "scope": 959, - "src": "16739:411:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 960, - "src": "458:16695:1" - } - ], - "src": "0:17154:1" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "exportedSymbols": { - "DarknodePayment": [ - 959 - ] - }, - "id": 960, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 13, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7653, - "src": "25:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 14, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7542, - "src": "89:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 15, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 8050, - "src": "149:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 16, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 4818, - "src": "214:51:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 17, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 2391, - "src": "266:50:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "file": "./DarknodePaymentStore.sol", - "id": 18, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 1288, - "src": "317:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 20, - "nodeType": "InheritanceSpecifier", - "src": "486:7:1" - } - ], - "contractDependencies": [ - 7652 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePayment is responsible for paying off darknodes for their\n computation.", - "fullyImplemented": true, - "id": 959, - "linearizedBaseContracts": [ - 959, - 7652 - ], - "name": "DarknodePayment", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 23, - "libraryName": { - "contractScope": null, - "id": 21, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "506:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "500:27:1", - "typeName": { - "id": 22, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 26, - "libraryName": { - "contractScope": null, - "id": 24, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4817, - "src": "538:24:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4817", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "532:41:1", - "typeName": { - "contractScope": null, - "id": 25, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8049, - "src": "567:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 28, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "579:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 27, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "695:77:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:42:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 33, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "779:40:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 32, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "779:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 35, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "967:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 34, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "967:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 37, - "name": "blacklister", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1102:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "currentCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1135:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 38, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 41, - "name": "previousCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1168:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1168:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "shareCount", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1266:25:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "pendingTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1501:30:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 45, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1501:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "registeredTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1650:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 48, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1650:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "registeredTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1793:55:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1793:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 51, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 57, - "name": "unclaimedRewards", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2012:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 56, - "keyType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2012:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 55, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 61, - "name": "previousCycleRewardShare", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2183:59:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 60, - "keyType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2183:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 59, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 63, - "name": "cycleStartTime", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2306:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 62, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 65, - "name": "cycleDuration", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2415:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 67, - "name": "cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2523:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 66, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2523:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 73, - "name": "rewardClaimed", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2727:65:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "typeName": { - "id": 72, - "keyType": { - "id": 68, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2735:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2727:44:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "valueType": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2746:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 70, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is blacklisted from receiving rewards\n @param _darknode The address of the darknode which was blacklisted\n @param _time The time at which the darknode was blacklisted", - "id": 79, - "name": "LogDarknodeBlacklisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3049:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3076:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3048:42:1" - }, - "src": "3020:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is whitelisted to receive rewards\n @param _darknode The address of the darknode which was whitelisted\n @param _time The time at which the darknode was whitelisted", - "id": 85, - "name": "LogDarknodeWhitelisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3343:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 83, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3370:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3342:42:1" - }, - "src": "3314:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode claims their share of reward\n @param _darknode The darknode which claimed\n @param _cycle The cycle that the darknode claimed for", - "id": 91, - "name": "LogDarknodeClaim", - "nodeType": "EventDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3597:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 86, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3597:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "indexed": false, - "name": "_cycle", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3624:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:43:1" - }, - "src": "3574:66:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when someone pays the DarknodePayment contract\n @param _payer The darknode which claimed\n @param _amount The cycle that the darknode claimed for\n @param _token The address of the token that was transferred", - "id": 99, - "name": "LogPaymentReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "indexed": true, - "name": "_payer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3922:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3946:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 94, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3963:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 96, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3963:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:57:1" - }, - "src": "3897:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode calls withdraw\n @param _payee The address of the darknode which withdrew\n @param _value The amount of DAI withdrawn\n @param _token The address of the token that was withdrawn", - "id": 107, - "name": "LogDarknodeWithdrew", - "nodeType": "EventDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "indexed": true, - "name": "_payee", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4247:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4247:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4287:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:56:1" - }, - "src": "4221:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new cycle happens\n @param _newCycle The new, current cycle\n @param _lastCycle The previous cycle\n @param _cycleTimeout The earliest a new cycle can be called", - "id": 115, - "name": "LogNewCycle", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "indexed": false, - "name": "_newCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4537:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4537:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "indexed": false, - "name": "_lastCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4556:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4556:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4576:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4576:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4536:62:1" - }, - "src": "4519:80:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the cycle duration changes\n @param _newDuration The new duration\n @param _oldDuration The old duration", - "id": 121, - "name": "LogCycleDurationChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "indexed": false, - "name": "_newDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4781:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "indexed": false, - "name": "_oldDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4803:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4780:44:1" - }, - "src": "4751:74:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the Blacklister contract changes\n @param _newBlacklister The new Blacklister\n @param _oldBlacklister The old Blacklister", - "id": 127, - "name": "LogBlacklisterChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "indexed": false, - "name": "_newBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5023:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "indexed": false, - "name": "_oldBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5048:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5048:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5022:50:1" - }, - "src": "4995:78:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new token is registered\n @param _token The token that was registered", - "id": 131, - "name": "LogTokenRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "5211:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5211:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5210:16:1" - }, - "src": "5186:41:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a token is deregistered\n @param _token The token that was deregistered", - "id": 135, - "name": "LogTokenDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "5367:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5366:16:1" - }, - "src": "5340:43:1" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "5508:107:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 142, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "5556:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 140, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "5526:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 2178, - "src": "5526:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f6465206973206e6f742072656769737465726564", - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:28:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - }, - "value": "darknode is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - } - ], - "id": 139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5518:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "5518:79:1" - }, - { - "id": 147, - "nodeType": "PlaceholderStatement", - "src": "5607:1:1" - } - ] - }, - "documentation": "@notice Restrict a function registered dark nodes to call a function.", - "id": 149, - "name": "onlyDarknode", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 137, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "5489:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5488:19:1" - }, - "src": "5467:148:1", - "visibility": "internal" - }, - { - "body": { - "id": 160, - "nodeType": "Block", - "src": "5701:81:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 152, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "5719:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "5734:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5719:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420426c61636b6c6973746572", - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5746:17:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - }, - "value": "not Blacklister" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - } - ], - "id": 151, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5711:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5711:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 158, - "nodeType": "ExpressionStatement", - "src": "5711:53:1" - }, - { - "id": 159, - "nodeType": "PlaceholderStatement", - "src": "5774:1:1" - } - ] - }, - "documentation": "@notice Restrict a function the blacklister.", - "id": 161, - "name": "onlyBlacklister", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 150, - "nodeType": "ParameterList", - "parameters": [], - "src": "5698:2:1" - }, - "src": "5674:108:1", - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "5908:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5926:31:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5947:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 166, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "5927:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isBlacklisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1027, - "src": "5927:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5927:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:25:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "5918:67:1" - }, - { - "id": 174, - "nodeType": "PlaceholderStatement", - "src": "5995:1:1" - } - ] - }, - "documentation": "@notice Restrict a function darknodes which haven't been blacklisted", - "id": 176, - "name": "notBlacklisted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "5889:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5889:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5888:19:1" - }, - "src": "5865:138:1", - "visibility": "internal" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "6655:418:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 187, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "6665:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 188, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "6675:8:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6665:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "6665:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 191, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "6693:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 192, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6712:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "6693:36:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "6693:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 195, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "6739:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 196, - "name": "_darknodePaymentStore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "6747:21:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "src": "6739:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 198, - "nodeType": "ExpressionStatement", - "src": "6739:29:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 199, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "6778:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 200, - "name": "_cycleDurationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6794:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6778:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "6778:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 203, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "6869:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 204, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "6883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6869:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "6869:24:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 208, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "6939:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6939:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 212, - "nodeType": "ExpressionStatement", - "src": "6939:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 213, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "6976:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 214, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "6993:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6993:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6976:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "6976:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7018:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 221, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "7052:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 219, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "7033:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "7033:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7033:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7018:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 224, - "nodeType": "ExpressionStatement", - "src": "7018:48:1" - } - ] - }, - "documentation": "@notice The contract constructor. Starts the current cycle using the\n time of deploy.\n\n /// @param _VERSION A string defining the contract version.\n @param _darknodeRegistry The address of the DarknodeRegistry contract\n @param _darknodePaymentStore The address of the DarknodePaymentStore\n contract\n @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds", - "id": 226, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6484:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 177, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6484:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 180, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6516:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 179, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "6516:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "name": "_darknodePaymentStore", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6560:42:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 181, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "6560:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "name": "_cycleDurationSeconds", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6612:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6474:173:1" - }, - "returnParameters": { - "id": 186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6655:0:1" - }, - "scope": 959, - "src": "6463:610:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "7347:416:1", - "statements": [ - { - "assignments": [ - 234 - ], - "declarations": [ - { - "constant": false, - "id": 234, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7357:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7357:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 237, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7423:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 235, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "7389:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDarknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1934, - "src": "7389:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7389:44:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7357:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7451:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7468:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7451:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206461726b6e6f6465206f776e6572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - }, - "value": "invalid darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "7443:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7443:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "7443:64:1" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7518:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 253, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7558:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 251, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7535:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "7535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7535:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7518:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7603:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7594:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7468696e6720746f207769746864726177", - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7606:21:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - }, - "value": "nothing to withdraw" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - } - ], - "id": 257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "7586:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7586:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 263, - "nodeType": "ExpressionStatement", - "src": "7586:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 267, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7654:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 268, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7665:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7673:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7681:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 264, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7639:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1286, - "src": "7639:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,address,uint256,address payable) external" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7639:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "7639:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 274, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7730:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7741:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7749:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 273, - "name": "LogDarknodeWithdrew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7710:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7710:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 278, - "nodeType": "EmitStatement", - "src": "7705:51:1" - } - ] - }, - "documentation": "@notice Transfers the funds allocated to the darknode to the darknode\n owner.\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer", - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7305:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7305:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7324:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7324:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7304:35:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "7347:0:1" - }, - "scope": 959, - "src": "7287:476:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 308, - "nodeType": "Block", - "src": "7851:114:1", - "statements": [ - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "7903:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 300, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7926:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7937:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 303, - "indexExpression": { - "argumentTypes": null, - "id": 302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7945:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7917:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7917:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 305, - "nodeType": "ExpressionStatement", - "src": "7917:31:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 292, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 293, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7882:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7878:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 307, - "initializationExpression": { - "assignments": [ - 289 - ], - "declarations": [ - { - "constant": false, - "id": 289, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "7866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 291, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7898:3:1", - "subExpression": { - "argumentTypes": null, - "id": 296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7898:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "7898:3:1" - }, - "nodeType": "ForStatement", - "src": "7861:98:1" - } - ] - }, - "documentation": null, - "id": 309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawMultiple", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7795:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7795:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7814:26:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7814:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 284, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7814:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7794:47:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [], - "src": "7851:0:1" - }, - "scope": 959, - "src": "7769:196:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 328, - "nodeType": "Block", - "src": "8066:117:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 316, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "8100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8084:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8076:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 319, - "nodeType": "ExpressionStatement", - "src": "8076:34:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 321, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "8144:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8144:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 323, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "8156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8156:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 325, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "8167:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 320, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8125:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 327, - "nodeType": "EmitStatement", - "src": "8120:56:1" - } - ] - }, - "documentation": "@notice Forward all payments to the DarknodePaymentStore.", - "id": 329, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [], - "src": "8046:2:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "8066:0:1" - }, - "scope": 959, - "src": "8037:146:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 346, - "nodeType": "Block", - "src": "8379:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 341, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "8431:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 343, - "indexExpression": { - "argumentTypes": null, - "id": 342, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8448:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8431:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 338, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 336, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8396:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "8396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "8396:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 335, - "id": 345, - "nodeType": "Return", - "src": "8389:67:1" - } - ] - }, - "documentation": "@notice The current balance of the contract available as reward for the\n current cycle", - "id": 347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCycleRewardPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 331, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8331:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8330:16:1" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8370:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8369:9:1" - }, - "scope": 959, - "src": "8299:164:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "8564:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 349, - "src": "8604:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 359, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 351, - "src": "8617:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 356, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "8581:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8581:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 355, - "id": 361, - "nodeType": "Return", - "src": "8574:50:1" - } - ] - }, - "documentation": null, - "id": 363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "darknodeBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 349, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8495:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8495:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 351, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8516:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8516:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8494:37:1" - }, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8555:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8555:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8554:9:1" - }, - "scope": 959, - "src": "8469:162:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 444, - "nodeType": "Block", - "src": "8730:832:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8345, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 370, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "8755:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8748:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f74206379636c65207965743a20746f6f206561726c79", - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8769:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - }, - "value": "cannot cycle yet: too early" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - } - ], - "id": 368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "8740:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:59:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 374, - "nodeType": "ExpressionStatement", - "src": "8740:59:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8817:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 378, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "8833:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8817:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f206e657720626c6f636b", - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8847:14:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - }, - "value": "no new block" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - } - ], - "id": 375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "8809:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8809:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8809:53:1" - }, - { - "assignments": [ - 384 - ], - "declarations": [ - { - "constant": false, - "id": 384, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "8921:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 387, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 385, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8940:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8921:42:1" - }, - { - "body": { - "id": 404, - "nodeType": "Block", - "src": "9012:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 399, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "9043:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 401, - "indexExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9060:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9043:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 398, - "name": "_snapshotBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "9026:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9026:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "9026:37:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "8990:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 393, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "8994:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8990:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 405, - "initializationExpression": { - "assignments": [ - 389 - ], - "declarations": [ - { - "constant": false, - "id": 389, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "8978:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8978:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9007:3:1", - "subExpression": { - "argumentTypes": null, - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9007:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "9007:3:1" - }, - "nodeType": "ForStatement", - "src": "8973:101:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 406, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9113:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 407, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9129:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9113:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "9113:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 410, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9151:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 411, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "9166:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9166:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9151:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "9151:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 415, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9188:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 416, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "9205:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9205:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9188:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "nodeType": "ExpressionStatement", - "src": "9188:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 420, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9230:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 423, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9245:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "9245:18:1", - "typeDescriptions": { - "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": "9245:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9230:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9230:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "9337:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 428, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "9350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelistLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 981, - "src": "9350:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9350:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9337:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "9337:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 433, - "name": "_updateTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "9438:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9438:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9438:18:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9484:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9498:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 439, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9513:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 436, - "name": "LogNewCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "9472:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 441, - "nodeType": "EmitStatement", - "src": "9467:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 442, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9543:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 367, - "id": 443, - "nodeType": "Return", - "src": "9536:19:1" - } - ] - }, - "documentation": "@notice Changes the current cycle.", - "id": 445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeCycle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 364, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:2:1" - }, - "returnParameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "8721:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8720:9:1" - }, - "scope": 959, - "src": "8680:882:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 511, - "nodeType": "Block", - "src": "9839:540:1", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 511, - "src": "9849:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9849:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 454, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9849:21:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 455, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "9884:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 456, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "9894:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9884:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 502, - "nodeType": "Block", - "src": "10078:227:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10113:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10100:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "756e6578706563746564206574686572207472616e73666572", - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10116:27:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - }, - "value": "unexpected ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "10092:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10092:52:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 487, - "nodeType": "ExpressionStatement", - "src": "10092:52:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 488, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10204:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10259:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10259:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10271:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 498, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "10287:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 489, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8049, - "src": "10220:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8049_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - }, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFromWithFees", - "nodeType": "MemberAccess", - "referencedDeclaration": 4641, - "src": "10220:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8309_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$bound_to$_t_contract$_IERC20_$8309_$", - "typeString": "function (contract IERC20,address,address,uint256) returns (uint256)" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:74:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10204:90:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "10204:90:1" - } - ] - }, - "id": 503, - "nodeType": "IfStatement", - "src": "9880:425:1", - "trueBody": { - "id": 479, - "nodeType": "Block", - "src": "9904:168:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 459, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "9926:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "9936:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9936:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9926:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d69736d617463686564206465706f7369742076616c7565", - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9947:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - }, - "value": "mismatched deposit value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - } - ], - "id": 458, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "9918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9918:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "9918:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 466, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "9988:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10004:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10004:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9988:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "9988:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10051:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10051:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10027:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10027:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "10027:34:1" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 505, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "10338:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10338:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10350:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10365:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 504, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "10319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10319:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "EmitStatement", - "src": "10314:58:1" - } - ] - }, - "documentation": "@notice Deposits token into the contract to be paid to the Darknodes\n\n /// @param _value The amount of token deposit in the token's smallest unit.\n @param _token The token address", - "id": 512, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9790:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9806:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9806:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9789:32:1" - }, - "returnParameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [], - "src": "9839:0:1" - }, - "scope": 959, - "src": "9773:606:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "10854:537:1", - "statements": [ - { - "assignments": [ - 524 - ], - "declarations": [ - { - "constant": false, - "id": 524, - "name": "whitelistedTime", - "nodeType": "VariableDeclaration", - "scope": 563, - "src": "10864:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 529, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 527, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10914:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 525, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10890:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 999, - "src": "10890:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10890:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10864:60:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "10994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10994:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 546, - "nodeType": "IfStatement", - "src": "10990:154:1", - "trueBody": { - "id": 545, - "nodeType": "Block", - "src": "11016:128:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11046:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 533, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "whitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1161, - "src": "11030:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11030:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "11030:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 540, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11098:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 541, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8345, - "src": "11109:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 539, - "name": "LogDarknodeWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "11075:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11075:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 543, - "nodeType": "EmitStatement", - "src": "11070:43:1" - }, - { - "expression": null, - "functionReturnParameters": 522, - "id": 544, - "nodeType": "Return", - "src": "11127:7:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 548, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11162:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 549, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "11180:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11162:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420636c61696d20666f722074686973206379636c65", - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11196:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - }, - "value": "cannot claim for this cycle" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - } - ], - "id": 547, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "11154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11154:72:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11154:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 555, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11317:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 554, - "name": "_claimDarknodeReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "11296:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11296:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 557, - "nodeType": "ExpressionStatement", - "src": "11296:31:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 559, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11359:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 560, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "11370:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 558, - "name": "LogDarknodeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11342:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 562, - "nodeType": "EmitStatement", - "src": "11337:47:1" - } - ] - }, - "documentation": "@notice Claims the rewards allocated to the darknode last cycle and\n increments the darknode balances. Whitelists the darknode if it\n hasn't already been whitelisted. If a darknode does not call\n claim() then the rewards for the previous cycle is lost.\n\n /// @param _darknode The address of the darknode to claim", - "id": 564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10817:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 518, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "10804:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10804:23:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 520, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10843:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 521, - "modifierName": { - "argumentTypes": null, - "id": 519, - "name": "notBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "10828:14:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10828:25:1" - } - ], - "name": "claim", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "10776:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10776:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10775:19:1" - }, - "returnParameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10854:0:1" - }, - "scope": 959, - "src": "10761:630:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 585, - "nodeType": "Block", - "src": "11627:96:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 577, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11653:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 574, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11637:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "blacklist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1127, - "src": "11637:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11637:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "11637:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 581, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11701:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 582, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8345, - "src": "11712:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 580, - "name": "LogDarknodeBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "11678:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11678:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 584, - "nodeType": "EmitStatement", - "src": "11673:43:1" - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in rewards.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 569, - "modifierName": { - "argumentTypes": null, - "id": 568, - "name": "onlyBlacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11587:15:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11587:15:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11616:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 572, - "modifierName": { - "argumentTypes": null, - "id": 570, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "11603:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11603:23:1" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "11559:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11559:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11558:19:1" - }, - "returnParameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "11627:0:1" - }, - "scope": 959, - "src": "11540:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "11961:318:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 594, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "11979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 596, - "indexExpression": { - "argumentTypes": null, - "id": 595, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12000:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11979:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12011:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11979:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12014:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "11971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11971:70:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "11971:70:1" - }, - { - "assignments": [ - 603 - ], - "declarations": [ - { - "constant": false, - "id": 603, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 634, - "src": "12051:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 606, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 604, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12070:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12070:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12051:39:1" - }, - { - "body": { - "id": 626, - "nodeType": "Block", - "src": "12139:98:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 618, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12161:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 620, - "indexExpression": { - "argumentTypes": null, - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12175:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12161:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 621, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12181:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12161:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e", - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - }, - "value": "token already pending registration" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - } - ], - "id": 617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12153:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12153:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 625, - "nodeType": "ExpressionStatement", - "src": "12153:73:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 611, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12117:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 612, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "12121:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12117:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 627, - "initializationExpression": { - "assignments": [ - 608 - ], - "declarations": [ - { - "constant": false, - "id": 608, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 627, - "src": "12105:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 607, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12105:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 610, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12114:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12105:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12134:3:1", - "subExpression": { - "argumentTypes": null, - "id": 614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12134:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 616, - "nodeType": "ExpressionStatement", - "src": "12134:3:1" - }, - "nodeType": "ForStatement", - "src": "12100:137:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12265:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12246:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12246:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12246:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "12246:26:1" - } - ] - }, - "documentation": "@notice Adds tokens to be payable. Registration is pending until next\n cycle.\n\n /// @param _token The address of the token to be registered.", - "id": 635, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 591, - "modifierName": { - "argumentTypes": null, - "id": 590, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "11951:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11951:9:1" - } - ], - "name": "registerToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "11926:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11926:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11925:16:1" - }, - "returnParameters": { - "id": 592, - "nodeType": "ParameterList", - "parameters": [], - "src": "11961:0:1" - }, - "scope": 959, - "src": "11903:376:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 655, - "nodeType": "Block", - "src": "12547:116:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 643, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12565:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 645, - "indexExpression": { - "argumentTypes": null, - "id": 644, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12565:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12596:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12565:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12599:22:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12557:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12557:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "ExpressionStatement", - "src": "12557:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 651, - "name": "_deregisterToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "12632:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12632:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 654, - "nodeType": "ExpressionStatement", - "src": "12632:24:1" - } - ] - }, - "documentation": "@notice Removes a token from the list of supported tokens.\n Deregistration is pending until next cycle.\n\n /// @param _token The address of the token to be deregistered.", - "id": 656, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 640, - "modifierName": { - "argumentTypes": null, - "id": 639, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "12537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12537:9:1" - } - ], - "name": "deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "12512:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12512:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12511:16:1" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [], - "src": "12547:0:1" - }, - "scope": 959, - "src": "12487:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 681, - "nodeType": "Block", - "src": "12855:158:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 664, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12873:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12890:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12873:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420636f6e74726163742061646472657373", - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12894:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - }, - "value": "invalid contract address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12865:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12865:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 671, - "nodeType": "ExpressionStatement", - "src": "12865:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 673, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 674, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12965:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 672, - "name": "LogBlacklisterChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12936:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12936:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 676, - "nodeType": "EmitStatement", - "src": "12931:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 677, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12987:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 678, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13001:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12987:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 680, - "nodeType": "ExpressionStatement", - "src": "12987:19:1" - } - ] - }, - "documentation": "@notice Updates the Blacklister contract address.\n\n /// @param _addr The new Blacklister contract address.", - "id": 682, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 661, - "modifierName": { - "argumentTypes": null, - "id": 660, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "12845:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12845:9:1" - } - ], - "name": "updateBlacklister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "12821:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12821:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12820:15:1" - }, - "returnParameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [], - "src": "12855:0:1" - }, - "scope": 959, - "src": "12794:219:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 702, - "nodeType": "Block", - "src": "13277:160:1", - "statements": [ - { - "assignments": [ - 690 - ], - "declarations": [ - { - "constant": false, - "id": 690, - "name": "oldDuration", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "13287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 692, - "initialValue": { - "argumentTypes": null, - "id": 691, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13309:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13287:35:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 693, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13332:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 694, - "name": "_durationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "13348:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13332:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 696, - "nodeType": "ExpressionStatement", - "src": "13332:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 698, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13403:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 699, - "name": "oldDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "13418:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 697, - "name": "LogCycleDurationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "13379:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13379:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 701, - "nodeType": "EmitStatement", - "src": "13374:56:1" - } - ] - }, - "documentation": "@notice Updates cycle duration\n\n /// @param _durationSeconds The amount of time (in seconds) that should have\n passed before a new cycle can be called.", - "id": 703, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 687, - "modifierName": { - "argumentTypes": null, - "id": 686, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "13267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13267:9:1" - } - ], - "name": "updateCycleDuration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 684, - "name": "_durationSeconds", - "nodeType": "VariableDeclaration", - "scope": 703, - "src": "13232:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13231:26:1" - }, - "returnParameters": { - "id": 688, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:0:1" - }, - "scope": 959, - "src": "13203:234:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "13709:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 713, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "13743:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 710, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "13719:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4441, - "src": "13719:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13719:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "13719:34:1" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodePaymentStore.\n\n /// @param _newOwner The address to transfer the ownership to.", - "id": 717, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 708, - "modifierName": { - "argumentTypes": null, - "id": 707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "13699:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13699:9:1" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 705, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "13671:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13670:19:1" - }, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "13709:0:1" - }, - "scope": 959, - "src": "13639:121:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "14035:39:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 722, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14045:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4462, - "src": "14045:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14045:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "14045:22:1" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another DarknodePaymentStore.", - "id": 728, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 720, - "modifierName": { - "argumentTypes": null, - "id": 719, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "14025:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14025:9:1" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 718, - "nodeType": "ParameterList", - "parameters": [], - "src": "14013:2:1" - }, - "returnParameters": { - "id": 721, - "nodeType": "ParameterList", - "parameters": [], - "src": "14035:0:1" - }, - "scope": 959, - "src": "13985:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "14415:655:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14433:40:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 734, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14434:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 736, - "indexExpression": { - "argumentTypes": null, - "id": 735, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14448:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 738, - "indexExpression": { - "argumentTypes": null, - "id": 737, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14459:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "72657761726420616c726561647920636c61696d6564", - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14475:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - }, - "value": "reward already claimed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - } - ], - "id": 733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "14425:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14425:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 742, - "nodeType": "ExpressionStatement", - "src": "14425:75:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 743, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 746, - "indexExpression": { - "argumentTypes": null, - "id": 744, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14524:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14510:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 747, - "indexExpression": { - "argumentTypes": null, - "id": 745, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14510:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14510:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "nodeType": "ExpressionStatement", - "src": "14510:46:1" - }, - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "14566:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 755, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 753, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14585:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14585:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14566:42:1" - }, - { - "body": { - "id": 802, - "nodeType": "Block", - "src": "14657:407:1", - "statements": [ - { - "assignments": [ - 767 - ], - "declarations": [ - { - "constant": false, - "id": 767, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "14671:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 768, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14687:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 770, - "indexExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14704:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14671:35:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14799:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14824:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14799:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14799:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 801, - "nodeType": "IfStatement", - "src": "14795:259:1", - "trueBody": { - "id": 800, - "nodeType": "Block", - "src": "14836:218:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 777, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14854:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 779, - "indexExpression": { - "argumentTypes": null, - "id": 778, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14871:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14854:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 784, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14908:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 786, - "indexExpression": { - "argumentTypes": null, - "id": 785, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14933:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 780, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14880:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 782, - "indexExpression": { - "argumentTypes": null, - "id": 781, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14897:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14880:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "14880:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14880:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14854:86:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "14854:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15000:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15007:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15032:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15007:31:1", - "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": 790, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "incrementDarknodeBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1215, - "src": "14958:30:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14958:81:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "14958:81:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 760, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14635:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 761, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "14639:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14635:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 803, - "initializationExpression": { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 803, - "src": "14623:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14623:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 759, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14632:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14623:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14652:3:1", - "subExpression": { - "argumentTypes": null, - "id": 763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14652:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 765, - "nodeType": "ExpressionStatement", - "src": "14652:3:1" - }, - "nodeType": "ForStatement", - "src": "14618:446:1" - } - ] - }, - "documentation": "@notice Claims the darknode reward for all registered tokens into\n darknodeBalances in the DarknodePaymentStore.\n Rewards can only be claimed once per cycle.\n\n /// @param _darknode The address to the darknode to claim rewards for", - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimDarknodeReward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 805, - "src": "14388:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14388:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14387:19:1" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "14415:0:1" - }, - "scope": 959, - "src": "14358:712:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "15295:391:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 810, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15309:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15323:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15309:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 846, - "nodeType": "Block", - "src": "15435:245:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 826, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15523:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 828, - "indexExpression": { - "argumentTypes": null, - "id": 827, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15523:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15573:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "15550:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "15550:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15523:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "15523:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 835, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15594:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 837, - "indexExpression": { - "argumentTypes": null, - "id": 836, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15594:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 842, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15658:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 838, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15629:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 840, - "indexExpression": { - "argumentTypes": null, - "id": 839, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15646:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7519, - "src": "15629:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:40:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15594:75:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "15594:75:1" - } - ] - }, - "id": 847, - "nodeType": "IfStatement", - "src": "15305:375:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "15326:103:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 813, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15340:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 815, - "indexExpression": { - "argumentTypes": null, - "id": 814, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15357:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15340:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15367:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15340:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "15340:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 819, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15382:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 821, - "indexExpression": { - "argumentTypes": null, - "id": 820, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15382:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15417:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15382:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "15382:36:1" - } - ] - } - } - ] - }, - "documentation": "@notice Snapshots the current balance of the tokens, for all registered\n tokens.\n\n /// @param _token The address the token to snapshot.", - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_snapshotBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "15271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15271:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15270:16:1" - }, - "returnParameters": { - "id": 809, - "nodeType": "ParameterList", - "parameters": [], - "src": "15295:0:1" - }, - "scope": 959, - "src": "15245:441:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 907, - "nodeType": "Block", - "src": "15912:638:1", - "statements": [ - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "lastToken", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "15922:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 856, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15942:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 862, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15987:1:1", - "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": 857, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15959:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15959:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "15959:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15959:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15942:48:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15922:68:1" - }, - { - "assignments": [ - 865 - ], - "declarations": [ - { - "constant": false, - "id": 865, - "name": "deletedTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "16000:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 864, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16000:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16061:1:1", - "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": 866, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16028:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 868, - "indexExpression": { - "argumentTypes": null, - "id": 867, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16049:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16028:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "16028:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16000:63:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 873, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16147:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 875, - "indexExpression": { - "argumentTypes": null, - "id": 874, - "name": "deletedTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "16164:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16147:35:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 876, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16147:47:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "16147:47:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 879, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16204:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 881, - "indexExpression": { - "argumentTypes": null, - "id": 880, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16204:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 882, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16238:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 884, - "indexExpression": { - "argumentTypes": null, - "id": 883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16238:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16204:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 886, - "nodeType": "ExpressionStatement", - "src": "16204:62:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 887, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16401:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 889, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16401:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16455:1:1", - "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": 890, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16427:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16427:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "16427:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16427:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16401:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 896, - "nodeType": "ExpressionStatement", - "src": "16401:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 897, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16467:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "id": 898, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16488:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16467:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16498:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16467:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "16467:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16536:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "LogTokenDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "16515:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16515:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 906, - "nodeType": "EmitStatement", - "src": "16510:33:1" - } - ] - }, - "documentation": "@notice Deregisters a token, removing it from the list of\n registeredTokens.\n\n /// @param _token The address of the token to deregister.", - "id": 908, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 851, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 908, - "src": "15888:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15888:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15887:16:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "15912:0:1" - }, - "scope": 959, - "src": "15862:688:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "16775:375:1", - "statements": [ - { - "assignments": [ - 912 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "16812:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16812:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 915, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 913, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16831:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16831:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16812:39:1" - }, - { - "body": { - "id": 949, - "nodeType": "Block", - "src": "16900:210:1", - "statements": [ - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "16914:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16914:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 931, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 928, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16930:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16944:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16930:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16914:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 935, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "16982:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 932, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16960:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16960:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ExpressionStatement", - "src": "16960:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 938, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "17002:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 940, - "indexExpression": { - "argumentTypes": null, - "id": 939, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17023:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17002:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 941, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "17032:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17032:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17002:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 944, - "nodeType": "ExpressionStatement", - "src": "17002:53:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 945, - "name": "LogTokenRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "17074:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17074:25:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 948, - "nodeType": "EmitStatement", - "src": "17069:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 921, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "16882:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16878:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 950, - "initializationExpression": { - "assignments": [ - 917 - ], - "declarations": [ - { - "constant": false, - "id": 917, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 950, - "src": "16866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 919, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16895:3:1", - "subExpression": { - "argumentTypes": null, - "id": 923, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16895:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "16895:3:1" - }, - "nodeType": "ForStatement", - "src": "16861:249:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 951, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "17119:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 953, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17119:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17142:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17119:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 956, - "nodeType": "ExpressionStatement", - "src": "17119:24:1" - } - ] - }, - "documentation": "@notice Updates the list of registeredTokens adding tokens that are to be registered.\n The list of tokens that are pending registration are emptied afterwards.", - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_updateTokenList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 909, - "nodeType": "ParameterList", - "parameters": [], - "src": "16764:2:1" - }, - "returnParameters": { - "id": 910, - "nodeType": "ParameterList", - "parameters": [], - "src": "16775:0:1" - }, - "scope": 959, - "src": "16739:411:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 960, - "src": "458:16695:1" - } - ], - "src": "0:17154:1" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -25378,118 +980,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T02:34:45.692Z", - "devdoc": { - "methods": { - "blacklist(address)": { - "params": { - "_darknode": "The address of the darknode to blacklist" - } - }, - "claim(address)": { - "params": { - "_darknode": "The address of the darknode to claim" - } - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_cycleDurationSeconds": "The minimum time before a new cycle can occur in seconds", - "_darknodePaymentStore": "The address of the DarknodePaymentStore contract", - "_darknodeRegistry": "The address of the DarknodeRegistry contract" - } - }, - "deposit(uint256,address)": { - "params": { - "_token": "The token address", - "_value": "The amount of token deposit in the token's smallest unit." - } - }, - "deregisterToken(address)": { - "params": { - "_token": "The address of the token to be deregistered." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "registerToken(address)": { - "params": { - "_token": "The address of the token to be registered." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "transferStoreOwnership(address)": { - "params": { - "_newOwner": "The address to transfer the ownership to." - } - }, - "updateBlacklister(address)": { - "params": { - "_addr": "The new Blacklister contract address." - } - }, - "updateCycleDuration(uint256)": { - "params": { - "_durationSeconds": "The amount of time (in seconds) that should have passed before a new cycle can be called." - } - }, - "withdraw(address,address)": { - "params": { - "_darknode": "The address of the darknode", - "_token": "Which token to transfer" - } - } - } - }, - "userdoc": { - "methods": { - "blacklist(address)": { - "notice": "Blacklists a darknode from participating in rewards. " - }, - "changeCycle()": { - "notice": "Changes the current cycle." - }, - "claim(address)": { - "notice": "Claims the rewards allocated to the darknode last cycle and increments the darknode balances. Whitelists the darknode if it hasn't already been whitelisted. If a darknode does not call claim() then the rewards for the previous cycle is lost. " - }, - "claimStoreOwnership()": { - "notice": "Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another DarknodePaymentStore." - }, - "constructor": "The contract constructor. Starts the current cycle using the time of deploy. ", - "currentCycleRewardPool(address)": { - "notice": "The current balance of the contract available as reward for the current cycle" - }, - "deposit(uint256,address)": { - "notice": "Deposits token into the contract to be paid to the Darknodes " - }, - "deregisterToken(address)": { - "notice": "Removes a token from the list of supported tokens. Deregistration is pending until next cycle. " - }, - "registerToken(address)": { - "notice": "Adds tokens to be payable. Registration is pending until next cycle. " - }, - "transferStoreOwnership(address)": { - "notice": "Allows the contract owner to initiate an ownership transfer of the DarknodePaymentStore. " - }, - "updateBlacklister(address)": { - "notice": "Updates the Blacklister contract address. " - }, - "updateCycleDuration(uint256)": { - "notice": "Updates cycle duration " - }, - "withdraw(address,address)": { - "notice": "Transfers the funds allocated to the darknode to the darknode owner. " - } - }, - "notice": "DarknodePayment is responsible for paying off darknodes for their computation." - } + "updatedAt": "2019-06-26T02:34:45.692Z" } \ No newline at end of file diff --git a/build/devnet/DarknodePaymentStore.json b/build/devnet/DarknodePaymentStore.json index 1e3a9f1e..9cc8706c 100644 --- a/build/devnet/DarknodePaymentStore.json +++ b/build/devnet/DarknodePaymentStore.json @@ -369,8507 +369,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeWhitelistLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeBlacklist\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"totalBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeWhitelist\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"availableBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"incrementDarknodeBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ETHEREUM\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"isBlacklisted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"availableBalance(address)\":{\"params\":{\"_token\":\"The token to check balance of\"},\"return\":\"The available balance of the contract\"},\"blacklist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to blacklist\"}},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\"}},\"incrementDarknodeBalance(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount that the balance should be incremented by\",\"_darknode\":\"The address of the darknode to increase balance of\",\"_token\":\"The token which the balance should be incremented\"}},\"isBlacklisted(address)\":{\"params\":{\"_darknode\":\"The address of the darknode\"},\"return\":\"true if the darknode is blacklisted\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"isWhitelisted(address)\":{\"params\":{\"_darknode\":\"The address of the darknode\"},\"return\":\"true if the darknode is whitelisted\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"totalBalance(address)\":{\"params\":{\"_token\":\"The token to check balance of\"},\"return\":\"The total balance of the contract\"},\"transfer(address,address,uint256,address)\":{\"params\":{\"_amount\":\"The amount to transfer\",\"_darknode\":\"The address of the darknode\",\"_recipient\":\"The address to withdraw it to\",\"_token\":\"Which token to transfer\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"whitelist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to whitelist\"}}}},\"userdoc\":{\"methods\":{\"availableBalance(address)\":{\"notice\":\"Get the available balance of the contract for a particular token This is the free amount which has not yet been allocated to darknodes. \"},\"blacklist(address)\":{\"notice\":\"Blacklists a darknode from participating in reward allocation. If the darknode is whitelisted, it is removed from the whitelist and the number of whitelisted nodes is decreased. \"},\"constructor\":\"The contract constructor. \",\"incrementDarknodeBalance(address,address,uint256)\":{\"notice\":\"Increments the amount of funds allocated to a particular darknode. \"},\"isBlacklisted(address)\":{\"notice\":\"Checks to see if a darknode is blacklisted \"},\"isWhitelisted(address)\":{\"notice\":\"Checks to see if a darknode is whitelisted \"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalBalance(address)\":{\"notice\":\"Get the total balance of the contract for a particular token \"},\"transfer(address,address,uint256,address)\":{\"notice\":\"Transfers an amount out of balance to a specified address \"},\"whitelist(address)\":{\"notice\":\"Whitelists a darknode allowing it to participate in reward allocation. \"}},\"notice\":\"DarknodePaymentStore is responsible for tracking black/whitelisted darknodes as well as the balances which have been allocated to the darknodes. It is also responsible for holding the tokens to be paid out to darknodes.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":\"DarknodePaymentStore\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":{\"keccak256\":\"0x5fa14e396e45b93df54c1641ce8d0d83fa8ac3ec6679bb969b4088360e2f97d5\",\"urls\":[\"bzzr://de076428cc66269df2aa797cee62012ff56c963eeb1dfee77314731f9ea98200\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol\":{\"keccak256\":\"0xb9e38917912b1ff2e0a1d6996636170c0af89fb412d4168a5dfa6c9a55b2f71a\",\"urls\":[\"bzzr://238d0af72f2ac122a434f414df1707630b5a07fee0e042fdf94b97f202f34ac0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzzr://f7f6da60a184233fd666ac44e6fb2bd51ca6ebdc4867a310d368049aa4e62786\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620013a9380380620013a9833981018060405260208110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b5050600180546001600160a01b0319163317908190556040519194506001600160a01b03169250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38051620000e4906002906020840190620000ec565b505062000191565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012f57805160ff19168380011785556200015f565b828001600101855582156200015f579182015b828111156200015f57825182559160200191906001019062000142565b506200016d92915062000171565b5090565b6200018e91905b808211156200016d576000815560010162000178565b90565b61120880620001a16000396000f3fe60806040526004361061011f5760003560e01c80639a4d6f3b116100a0578063f7cdf47c11610064578063f7cdf47c146103e2578063f9ce7813146103f7578063f9f92be414610440578063fe575a8714610473578063ffa1ad74146104a65761011f565b80639a4d6f3b146102d35780639b19251a14610306578063a0821be314610339578063d23b90a51461036c578063f2fde38b146103af5761011f565b80636eacd398116100e75780636eacd3981461020a57806370324b771461023d578063715018a6146102785780638da5cb5b1461028d5780638f32d59b146102be5761011f565b80630483a7f6146101215780631fc6fe8e146101665780633af32abf1461017b5780634c89d726146101c25780634e71e0c8146101f5575b005b34801561012d57600080fd5b506101546004803603602081101561014457600080fd5b50356001600160a01b0316610530565b60408051918252519081900360200190f35b34801561017257600080fd5b50610154610542565b34801561018757600080fd5b506101ae6004803603602081101561019e57600080fd5b50356001600160a01b0316610548565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b50610154600480360360208110156101e557600080fd5b50356001600160a01b0316610569565b34801561020157600080fd5b5061011f61057b565b34801561021657600080fd5b506101546004803603602081101561022d57600080fd5b50356001600160a01b0316610642565b34801561024957600080fd5b506101546004803603604081101561026057600080fd5b506001600160a01b03813581169160200135166106ed565b34801561028457600080fd5b5061011f61070a565b34801561029957600080fd5b506102a261079e565b604080516001600160a01b039092168252519081900360200190f35b3480156102ca57600080fd5b506101ae6107ad565b3480156102df57600080fd5b50610154600480360360208110156102f657600080fd5b50356001600160a01b03166107be565b34801561031257600080fd5b5061011f6004803603602081101561032957600080fd5b50356001600160a01b03166107d0565b34801561034557600080fd5b506101546004803603602081101561035c57600080fd5b50356001600160a01b03166108fb565b34801561037857600080fd5b5061011f6004803603606081101561038f57600080fd5b506001600160a01b03813581169160208101359091169060400135610933565b3480156103bb57600080fd5b5061011f600480360360208110156103d257600080fd5b50356001600160a01b0316610acf565b3480156103ee57600080fd5b506102a2610b3b565b34801561040357600080fd5b5061011f6004803603608081101561041a57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610b53565b34801561044c57600080fd5b5061011f6004803603602081101561046357600080fd5b50356001600160a01b0316610d26565b34801561047f57600080fd5b506101ae6004803603602081101561049657600080fd5b50356001600160a01b0316610e2b565b3480156104b257600080fd5b506104bb610e48565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60056020526000908152604090205481565b60035481565b6001600160a01b03811660009081526007602052604090205415155b919050565b60066020526000908152604090205481565b6000546001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561067157503031610564565b60408051600160e01b6370a0823102815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50519050610564565b600460209081526000928352604080842090915290825290205481565b6107126107ad565b6107545760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60076020526000908152604090205481565b6107d86107ad565b61081a5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b61082381610e2b565b156108785760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b61088181610548565b156108d65760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020429055600380546001019055565b6001600160a01b03811660009081526005602052604081205461092d9061092184610642565b9063ffffffff610ed316565b92915050565b61093b6107ad565b61097d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600081116109d55760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b806109df836108fb565b1015610a355760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260046020908152604080832093861683529290522054610a6b908263ffffffff610f3316565b6001600160a01b0380851660009081526004602090815260408083209387168352928152828220939093556005909252902054610aae908263ffffffff610f3316565b6001600160a01b039092166000908152600560205260409020919091555050565b610ad76107ad565b610b195760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b610b5b6107ad565b610b9d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054821115610c1a5760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e74206461726b6e6f64652062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054610c50908363ffffffff610ed316565b6001600160a01b0380861660009081526004602090815260408083209388168352928152828220939093556005909252902054610c93908363ffffffff610ed316565b6001600160a01b03841660008181526005602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d06576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b50610d20565b610d206001600160a01b038416828463ffffffff610f9716565b50505050565b610d2e6107ad565b610d705760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b610d7981610e2b565b15610dce5760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c726561647920626c61636b6c697374656400000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020429055610df281610548565b15610e28576001600160a01b038116600090815260076020526040812055600354610e2490600163ffffffff610ed316565b6003555b50565b6001600160a01b0316600090815260066020526040902054151590565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b600082821115610f2d5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610f905760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610fec908490610ff1565b505050565b611003826001600160a01b03166111b6565b6110575760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110955780518252601f199092019160209182019101611076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110f7576040519150601f19603f3d011682016040523d82523d6000602084013e6110fc565b606091505b50915091508161114d5760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115610d205780806020019051602081101561116957600080fd5b5051610d205760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b3b15159056fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058205bdd576bfc5c0fc8a0e9dc975455405dd3473ee2d67ad2b9f9d09b19e115e6610029", - "deployedBytecode": "0x60806040526004361061011f5760003560e01c80639a4d6f3b116100a0578063f7cdf47c11610064578063f7cdf47c146103e2578063f9ce7813146103f7578063f9f92be414610440578063fe575a8714610473578063ffa1ad74146104a65761011f565b80639a4d6f3b146102d35780639b19251a14610306578063a0821be314610339578063d23b90a51461036c578063f2fde38b146103af5761011f565b80636eacd398116100e75780636eacd3981461020a57806370324b771461023d578063715018a6146102785780638da5cb5b1461028d5780638f32d59b146102be5761011f565b80630483a7f6146101215780631fc6fe8e146101665780633af32abf1461017b5780634c89d726146101c25780634e71e0c8146101f5575b005b34801561012d57600080fd5b506101546004803603602081101561014457600080fd5b50356001600160a01b0316610530565b60408051918252519081900360200190f35b34801561017257600080fd5b50610154610542565b34801561018757600080fd5b506101ae6004803603602081101561019e57600080fd5b50356001600160a01b0316610548565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b50610154600480360360208110156101e557600080fd5b50356001600160a01b0316610569565b34801561020157600080fd5b5061011f61057b565b34801561021657600080fd5b506101546004803603602081101561022d57600080fd5b50356001600160a01b0316610642565b34801561024957600080fd5b506101546004803603604081101561026057600080fd5b506001600160a01b03813581169160200135166106ed565b34801561028457600080fd5b5061011f61070a565b34801561029957600080fd5b506102a261079e565b604080516001600160a01b039092168252519081900360200190f35b3480156102ca57600080fd5b506101ae6107ad565b3480156102df57600080fd5b50610154600480360360208110156102f657600080fd5b50356001600160a01b03166107be565b34801561031257600080fd5b5061011f6004803603602081101561032957600080fd5b50356001600160a01b03166107d0565b34801561034557600080fd5b506101546004803603602081101561035c57600080fd5b50356001600160a01b03166108fb565b34801561037857600080fd5b5061011f6004803603606081101561038f57600080fd5b506001600160a01b03813581169160208101359091169060400135610933565b3480156103bb57600080fd5b5061011f600480360360208110156103d257600080fd5b50356001600160a01b0316610acf565b3480156103ee57600080fd5b506102a2610b3b565b34801561040357600080fd5b5061011f6004803603608081101561041a57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610b53565b34801561044c57600080fd5b5061011f6004803603602081101561046357600080fd5b50356001600160a01b0316610d26565b34801561047f57600080fd5b506101ae6004803603602081101561049657600080fd5b50356001600160a01b0316610e2b565b3480156104b257600080fd5b506104bb610e48565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60056020526000908152604090205481565b60035481565b6001600160a01b03811660009081526007602052604090205415155b919050565b60066020526000908152604090205481565b6000546001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561067157503031610564565b60408051600160e01b6370a0823102815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50519050610564565b600460209081526000928352604080842090915290825290205481565b6107126107ad565b6107545760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60076020526000908152604090205481565b6107d86107ad565b61081a5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b61082381610e2b565b156108785760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b61088181610548565b156108d65760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020429055600380546001019055565b6001600160a01b03811660009081526005602052604081205461092d9061092184610642565b9063ffffffff610ed316565b92915050565b61093b6107ad565b61097d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600081116109d55760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b806109df836108fb565b1015610a355760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260046020908152604080832093861683529290522054610a6b908263ffffffff610f3316565b6001600160a01b0380851660009081526004602090815260408083209387168352928152828220939093556005909252902054610aae908263ffffffff610f3316565b6001600160a01b039092166000908152600560205260409020919091555050565b610ad76107ad565b610b195760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b610b5b6107ad565b610b9d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054821115610c1a5760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e74206461726b6e6f64652062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054610c50908363ffffffff610ed316565b6001600160a01b0380861660009081526004602090815260408083209388168352928152828220939093556005909252902054610c93908363ffffffff610ed316565b6001600160a01b03841660008181526005602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d06576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b50610d20565b610d206001600160a01b038416828463ffffffff610f9716565b50505050565b610d2e6107ad565b610d705760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b610d7981610e2b565b15610dce5760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c726561647920626c61636b6c697374656400000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020429055610df281610548565b15610e28576001600160a01b038116600090815260076020526040812055600354610e2490600163ffffffff610ed316565b6003555b50565b6001600160a01b0316600090815260066020526040902054151590565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b600082821115610f2d5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610f905760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610fec908490610ff1565b505050565b611003826001600160a01b03166111b6565b6110575760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110955780518252601f199092019160209182019101611076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110f7576040519150601f19603f3d011682016040523d82523d6000602084013e6110fc565b606091505b50915091508161114d5760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115610d205780806020019051602081101561116957600080fd5b5051610d205760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b3b15159056fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058205bdd576bfc5c0fc8a0e9dc975455405dd3473ee2d67ad2b9f9d09b19e115e6610029", - "sourceMap": "559:5552:2:-;;;1561:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;1561:92:2;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1561:92: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;-1:-1;;528:6:12;:19;;-1:-1:-1;;;;;;528:19:12;537:10;528:19;;;;;562:40;;1561:92:2;;-1:-1:-1;;;;;;595:6:12;;-1:-1:-1;528:6:12;;-1:-1:-1;562:40:12;;528:6;;562:40;1628:18:2;;;;:7;;:18;;;;;:::i;:::-;;1561:92;559:5552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:5552:2;;;-1:-1:-1;559:5552:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "559:5552:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1157:49:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1157:49:2;-1:-1:-1;;;;;1157:49:2;;:::i;:::-;;;;;;;;;;;;;;;;929:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;929:38:2;;;:::i;2255:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:126:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2255:126:2;-1:-1:-1;;;;;2255:126:2;;:::i;:::-;;;;;;;;;;;;;;;;;;1271:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:52:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1271:52:2;-1:-1:-1;;;;;1271:52:2;;:::i;2166:177:12:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2166:177:12;;;:::i;2574:237:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2574:237:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2574:237:2;-1:-1:-1;;;;;2574:237:2;;:::i;1030:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1030:71:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1030:71:2;;;;;;;;;;:::i;1688:137:12:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1688:137:12;;;:::i;672:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;672:77:12;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:12;;;;;;;;;;;;;;1244:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1244:90:12;;;:::i;1388:52:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1388:52:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1388:52:2;-1:-1:-1;;;;;1388:52:2;;:::i;4212:303::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4212:303:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4212:303:2;-1:-1:-1;;;;;4212:303:2;;:::i;3115:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3115:144:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3115:144:2;-1:-1:-1;;;;;3115:144:2;;:::i;4852:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4852:414:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4852:414:2;;;;;;;;;;;;;;;;;:::i;1975:101:12:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1975:101:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:12;-1:-1:-1;;;;;1975:101:12;;:::i;803:77:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;803:77:2;;;:::i;5555:553::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5555:553:2;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;5555:553:2;;;;;;;;;;;;;;;;;;;;;;:::i;3565:464::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3565:464:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3565:464:2;-1:-1:-1;;;;;3565:464:2;;:::i;1951:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1951:126:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1951:126:2;-1:-1:-1;;;;;1951:126:2;;:::i;687:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;687:21:2;;;:::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;687:21:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:49;;;;;;;;;;;;;:::o;929:38::-;;;;:::o;2255:126::-;-1:-1:-1;;;;;2341:28:2;;2318:4;2341:28;;;:17;:28;;;;;;:33;;2255:126;;;;:::o;1271:52::-;;;;;;;;;;;;;:::o;2166:177:12:-;1091:13;;-1:-1:-1;;;;;1091:13:12;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:12;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:12;;;-1:-1:-1;;;;;2289:13:12;;2280:22;;;;2310:26;;;2166:177::o;2574:237:2:-;2633:7;-1:-1:-1;;;;;2656:18:2;;838:42;2656:18;2652:153;;;-1:-1:-1;2705:4:2;2697:21;2690:28;;2652:153;2756:38;;;-1:-1:-1;;;;;2756:38:2;;2788:4;2756:38;;;;;;-1:-1:-1;;;;;2756:23:2;;;;;:38;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2756:38:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2756:38:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2756:38:2;;-1:-1:-1;2749:45:2;;1030:71;;;;;;;;;;;;;;;;;;;;;;;;:::o;1688:137:12:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:12;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:12;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:12;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:12;1307:10;:20;;1244:90::o;1388:52:2:-;;;;;;;;;;;;;:::o;4212:303::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;4288:24:2;4302:9;4288:13;:24::i;:::-;4287:25;4279:61;;;;;-1:-1:-1;;;;;4279:61:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4359:24;4373:9;4359:13;:24::i;:::-;4358:25;4350:66;;;;;-1:-1:-1;;;;;4350:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4427:28:2;;;;;:17;:28;;;;;4458:15;4427:46;;4483:23;:25;;;;;;4212:303::o;3115:144::-;-1:-1:-1;;;;;3229:22:2;;3178:7;3229:22;;;:14;:22;;;;;;3204:48;;:20;3244:6;3204:12;:20::i;:::-;:24;:48;:24;:48;:::i;:::-;3197:55;3115:144;-1:-1:-1;;3115:144:2:o;4852:414::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;4985:1:2;4975:7;:11;4967:38;;;;;-1:-1:-1;;;;;4967:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;5051:7;5023:24;5040:6;5023:16;:24::i;:::-;:35;;5015:77;;;;;-1:-1:-1;;;;;5015:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5141:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:48;;5181:7;5141:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;5103:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;;:86;;;;5224:14;:22;;;;;;:35;;5251:7;5224:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;5199:22:2;;;;;;;:14;:22;;;;;:60;;;;-1:-1:-1;;4852:414:2:o;1975:101:12:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:12;-1:-1:-1;;;;;2045:24:12;;;;;;;;;;1975:101::o;803:77:2:-;838:42;803:77;:::o;5555:553::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;5690:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:46;-1:-1:-1;5690:46:2;5682:88;;;;;-1:-1:-1;;;;;5682:88:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5818:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:48;;5858:7;5818:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;5780:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;;:86;;;;5901:14;:22;;;;;;:35;;5928:7;5901:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;5876:22:2;;;;;;:14;:22;;;;;:60;;;;838:42;5951:18;5947:155;;;5985:28;;-1:-1:-1;;;;;5985:19:2;;;:28;;;;;6005:7;;5985:28;;;;6005:7;5985:19;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5985:28:2;5947:155;;;6044:47;-1:-1:-1;;;;;6044:26:2;;6071:10;6083:7;6044:47;:26;:47;:::i;:::-;5555:553;;;;:::o;3565:464::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3641:24:2;3655:9;3641:13;:24::i;:::-;3640:25;3632:66;;;;;-1:-1:-1;;;;;3632:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3708:28:2;;;;;;:17;:28;;;;;3739:15;3708:46;;3805:24;3726:9;3805:13;:24::i;:::-;3801:222;;;-1:-1:-1;;;;;3845:28:2;;3876:1;3845:28;;;:17;:28;;;;;:32;3982:23;;:30;;4010:1;3982:30;:27;:30;:::i;:::-;3956:23;:56;3801:222;3565:464;:::o;1951:126::-;-1:-1:-1;;;;;2037:28:2;2014:4;2037:28;;;:17;:28;;;;;;:33;;;1951:126::o;687:21::-;;;;;;;;;;;;;;-1:-1:-1;;687:21:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;944:174:14:-;1052:58;;;-1:-1:-1;;;;;1052:58:14;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1052:58:14;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;1026:85:14;;1045:5;;1026:18;:85::i;:::-;944:174;;;:::o;3398:930::-;3941:27;3949:5;-1:-1:-1;;;;;3941:25:14;;:27::i;:::-;3933:55;;;;;-1:-1:-1;;;;;3933:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:12;4073:23;4108:5;-1:-1:-1;;;;;4100:19:14;4120:4;4100:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4100:25:14;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4058:67:14;;;;4143:7;4135:37;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;;;;4187:17;;:21;4183:139;;4270:10;4259:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4259:30:14;4251:60;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;;;542:413:41;902:20;940:8;;;542:413::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\nimport \"../libraries/Claimable.sol\";\nimport \"../libraries/CompatibleERC20Functions.sol\";\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\n\n/// @notice DarknodePaymentStore is responsible for tracking black/whitelisted\n/// darknodes as well as the balances which have been allocated to the\n/// darknodes. It is also responsible for holding the tokens to be paid\n/// out to darknodes.\ncontract DarknodePaymentStore is Claimable {\n using SafeMath for uint256;\n using CompatibleERC20Functions for ERC20;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice The special address for Ether.\n address constant public ETHEREUM = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n /// @notice The size of the whitelist\n uint256 public darknodeWhitelistLength;\n\n /// @notice Mapping of darknode -> token -> balance\n mapping(address => mapping(address => uint256)) public darknodeBalances;\n\n /// @notice Mapping of token -> lockedAmount\n mapping(address => uint256) public lockedBalances;\n\n /// @notice mapping of darknode -> blacklistTimestamp\n mapping(address => uint256) public darknodeBlacklist;\n\n /// @notice mapping of darknode -> whitelistTimestamp\n mapping(address => uint256) public darknodeWhitelist;\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n constructor(\n string memory _VERSION\n ) public {\n VERSION = _VERSION;\n }\n\n /// @notice Allow direct payments to be made to the DarknodePaymentStore.\n function () external payable {\n }\n\n /// @notice Checks to see if a darknode is blacklisted\n ///\n /// @param _darknode The address of the darknode\n /// @return true if the darknode is blacklisted\n function isBlacklisted(address _darknode) public view returns (bool) {\n return darknodeBlacklist[_darknode] != 0;\n }\n\n /// @notice Checks to see if a darknode is whitelisted\n ///\n /// @param _darknode The address of the darknode\n /// @return true if the darknode is whitelisted\n function isWhitelisted(address _darknode) public view returns (bool) {\n return darknodeWhitelist[_darknode] != 0;\n }\n\n /// @notice Get the total balance of the contract for a particular token\n ///\n /// @param _token The token to check balance of\n /// @return The total balance of the contract\n function totalBalance(address _token) public view returns (uint256) {\n if (_token == ETHEREUM) {\n return address(this).balance;\n } else {\n return ERC20(_token).balanceOf(address(this));\n }\n }\n\n /// @notice Get the available balance of the contract for a particular token\n /// This is the free amount which has not yet been allocated to\n /// darknodes.\n ///\n /// @param _token The token to check balance of\n /// @return The available balance of the contract\n function availableBalance(address _token) public view returns (uint256) {\n return totalBalance(_token).sub(lockedBalances[_token]);\n }\n\n /// @notice Blacklists a darknode from participating in reward allocation.\n /// If the darknode is whitelisted, it is removed from the whitelist\n /// and the number of whitelisted nodes is decreased.\n ///\n /// @param _darknode The address of the darknode to blacklist\n function blacklist(address _darknode) external onlyOwner {\n require(!isBlacklisted(_darknode), \"darknode already blacklisted\");\n darknodeBlacklist[_darknode] = block.timestamp;\n\n // Unwhitelist if necessary\n if (isWhitelisted(_darknode)) {\n darknodeWhitelist[_darknode] = 0;\n // Use SafeMath when subtracting to avoid underflows\n darknodeWhitelistLength = darknodeWhitelistLength.sub(1);\n }\n }\n\n /// @notice Whitelists a darknode allowing it to participate in reward\n /// allocation.\n ///\n /// @param _darknode The address of the darknode to whitelist\n function whitelist(address _darknode) external onlyOwner {\n require(!isBlacklisted(_darknode), \"darknode is blacklisted\");\n require(!isWhitelisted(_darknode), \"darknode already whitelisted\");\n\n darknodeWhitelist[_darknode] = block.timestamp;\n darknodeWhitelistLength++;\n }\n\n /// @notice Increments the amount of funds allocated to a particular\n /// darknode.\n ///\n /// @param _darknode The address of the darknode to increase balance of\n /// @param _token The token which the balance should be incremented\n /// @param _amount The amount that the balance should be incremented by\n function incrementDarknodeBalance(address _darknode, address _token, uint256 _amount) external onlyOwner {\n require(_amount > 0, \"invalid amount\");\n require(availableBalance(_token) >= _amount, \"insufficient contract balance\");\n\n darknodeBalances[_darknode][_token] = darknodeBalances[_darknode][_token].add(_amount);\n lockedBalances[_token] = lockedBalances[_token].add(_amount);\n }\n\n /// @notice Transfers an amount out of balance to a specified address\n ///\n /// @param _darknode The address of the darknode\n /// @param _token Which token to transfer\n /// @param _amount The amount to transfer\n /// @param _recipient The address to withdraw it to\n function transfer(address _darknode, address _token, uint256 _amount, address payable _recipient) external onlyOwner {\n require(darknodeBalances[_darknode][_token] >= _amount, \"insufficient darknode balance\");\n darknodeBalances[_darknode][_token] = darknodeBalances[_darknode][_token].sub(_amount);\n lockedBalances[_token] = lockedBalances[_token].sub(_amount);\n\n if (_token == ETHEREUM) {\n _recipient.transfer(_amount);\n } else {\n ERC20(_token).safeTransfer(_recipient, _amount);\n }\n }\n\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "exportedSymbols": { - "DarknodePaymentStore": [ - 1287 - ] - }, - "id": 1288, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 961, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 962, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7542, - "src": "25:59:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 963, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 8050, - "src": "85:63:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 964, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4464, - "src": "150:36:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 965, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4818, - "src": "187:51:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 966, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 2391, - "src": "239:50:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 967, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4463, - "src": "592:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4463", - "typeString": "contract Claimable" - } - }, - "id": 968, - "nodeType": "InheritanceSpecifier", - "src": "592:9:2" - } - ], - "contractDependencies": [ - 4463 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePaymentStore is responsible for tracking black/whitelisted\n darknodes as well as the balances which have been allocated to the\n darknodes. It is also responsible for holding the tokens to be paid\n out to darknodes.", - "fullyImplemented": true, - "id": 1287, - "linearizedBaseContracts": [ - 1287, - 4463 - ], - "name": "DarknodePaymentStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 971, - "libraryName": { - "contractScope": null, - "id": 969, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "614:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "608:27:2", - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 974, - "libraryName": { - "contractScope": null, - "id": 972, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4817, - "src": "646:24:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4817", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "640:41:2", - "typeName": { - "contractScope": null, - "id": 973, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8049, - "src": "675:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 976, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "687:21:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 975, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "687:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 979, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "803:77:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "838:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 981, - "name": "darknodeWhitelistLength", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "929:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "929:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 987, - "name": "darknodeBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1030:71:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 986, - "keyType": { - "id": 982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1030:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 985, - "keyType": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1049:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1068:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 991, - "name": "lockedBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1157:49:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 990, - "keyType": { - "id": 988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1157:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 995, - "name": "darknodeBlacklist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1271:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 994, - "keyType": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1271:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1290:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 999, - "name": "darknodeWhitelist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1388:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 998, - "keyType": { - "id": 996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1388:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "1618:35:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1004, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "1628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1005, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1638:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1628:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1628:18:2" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.", - "id": 1009, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "1582:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1582:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:38:2" - }, - "returnParameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "1618:0:2" - }, - "scope": 1287, - "src": "1561:92:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1012, - "nodeType": "Block", - "src": "1766:7:2", - "statements": [] - }, - "documentation": "@notice Allow direct payments to be made to the DarknodePaymentStore.", - "id": 1013, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [], - "src": "1746:2:2" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:2" - }, - "scope": 1287, - "src": "1737:36:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "2020:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1020, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "2037:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "2055:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2037:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2069:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2037:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1019, - "id": 1025, - "nodeType": "Return", - "src": "2030:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is blacklisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is blacklisted", - "id": 1027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isBlacklisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1015, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "1974:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1973:19:2" - }, - "returnParameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1018, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "2014:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2013:6:2" - }, - "scope": 1287, - "src": "1951:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "2324:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1034, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "2341:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1036, - "indexExpression": { - "argumentTypes": null, - "id": 1035, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "2359:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2341:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2373:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2341:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1033, - "id": 1039, - "nodeType": "Return", - "src": "2334:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is whitelisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is whitelisted", - "id": 1041, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1029, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2278:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2277:19:2" - }, - "returnParameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2318:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1031, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2318:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:6:2" - }, - "scope": 1287, - "src": "2255:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "2642:169:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2656:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2656:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1066, - "nodeType": "Block", - "src": "2735:70:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1062, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8395, - "src": "2788:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2780:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1058, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2762:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1057, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8049, - "src": "2756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8049_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 7693, - "src": "2756:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1065, - "nodeType": "Return", - "src": "2749:45:2" - } - ] - }, - "id": 1067, - "nodeType": "IfStatement", - "src": "2652:153:2", - "trueBody": { - "id": 1056, - "nodeType": "Block", - "src": "2676:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8395, - "src": "2705:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2697:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1055, - "nodeType": "Return", - "src": "2690:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Get the total balance of the contract for a particular token\n\n /// @param _token The token to check balance of\n @return The total balance of the contract", - "id": 1069, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2596:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2595:16:2" - }, - "returnParameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2633:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2632:9:2" - }, - "scope": 1287, - "src": "2574:237:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1085, - "nodeType": "Block", - "src": "3187:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1080, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3229:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1082, - "indexExpression": { - "argumentTypes": null, - "id": 1081, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3244:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3229:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3217:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1076, - "name": "totalBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "3204:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "3204:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1075, - "id": 1084, - "nodeType": "Return", - "src": "3197:55:2" - } - ] - }, - "documentation": "@notice Get the available balance of the contract for a particular token\n This is the free amount which has not yet been allocated to\n darknodes.\n\n /// @param _token The token to check balance of\n @return The available balance of the contract", - "id": 1086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3141:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3140:16:2" - }, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3178:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3177:9:2" - }, - "scope": 1287, - "src": "3115:144:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "3622:407:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3640:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3655:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1094, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "3641:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3641:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c726561647920626c61636b6c6973746564", - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3667:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - }, - "value": "darknode already blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - } - ], - "id": 1093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3632:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1100, - "nodeType": "ExpressionStatement", - "src": "3632:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1101, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "3708:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1103, - "indexExpression": { - "argumentTypes": null, - "id": 1102, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3726:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3708:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1104, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3739:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3708:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "3708:46:2" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1109, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3819:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1108, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "3805:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3805:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1125, - "nodeType": "IfStatement", - "src": "3801:222:2", - "trueBody": { - "id": 1124, - "nodeType": "Block", - "src": "3831:192:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1111, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3845:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1113, - "indexExpression": { - "argumentTypes": null, - "id": 1112, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3863:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3845:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3876:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3845:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "3845:32:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1117, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3956:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4010:1:2", - "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": 1118, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3982:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "3982:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3982:30:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3956:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "3956:56:2" - } - ] - } - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in reward allocation.\n If the darknode is whitelisted, it is removed from the whitelist\n and the number of whitelisted nodes is decreased.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 1127, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1091, - "modifierName": { - "argumentTypes": null, - "id": 1090, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3612:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3612:9:2" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "3584:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3584:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3583:19:2" - }, - "returnParameters": { - "id": 1092, - "nodeType": "ParameterList", - "parameters": [], - "src": "3622:0:2" - }, - "scope": 1287, - "src": "3565:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1160, - "nodeType": "Block", - "src": "4269:246:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4287:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1136, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4302:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1135, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "4288:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4314:25:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4279:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "4279:61:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4358:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4373:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1143, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "4359:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c72656164792077686974656c6973746564", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4385:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - }, - "value": "darknode already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - } - ], - "id": 1142, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4350:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1149, - "nodeType": "ExpressionStatement", - "src": "4350:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "4427:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4427:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "4458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4458:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4427:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1156, - "nodeType": "ExpressionStatement", - "src": "4427:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4483:25:2", - "subExpression": { - "argumentTypes": null, - "id": 1157, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4483:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "nodeType": "ExpressionStatement", - "src": "4483:25:2" - } - ] - }, - "documentation": "@notice Whitelists a darknode allowing it to participate in reward\n allocation.\n\n /// @param _darknode The address of the darknode to whitelist", - "id": 1161, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4259:9:2" - } - ], - "name": "whitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "4231:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4230:19:2" - }, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "4269:0:2" - }, - "scope": 1287, - "src": "4212:303:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "4957:309:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "4975:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4985:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4975:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420616d6f756e74", - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:16:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - }, - "value": "invalid amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - } - ], - "id": 1172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4967:38:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "4967:38:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5040:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1180, - "name": "availableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "5023:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1183, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5023:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420636f6e74726163742062616c616e6365", - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5060:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - }, - "value": "insufficient contract balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - } - ], - "id": 1179, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5015:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:77:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "5015:77:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1188, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5103:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5120:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5103:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1192, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5103:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1199, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1193, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5141:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1195, - "indexExpression": { - "argumentTypes": null, - "id": 1194, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5158:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1197, - "indexExpression": { - "argumentTypes": null, - "id": 1196, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5169:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "5141:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5103:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "5103:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1203, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5199:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1205, - "indexExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5214:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5199:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1206, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5224:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1208, - "indexExpression": { - "argumentTypes": null, - "id": 1207, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5239:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5224:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "5224:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5224:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1213, - "nodeType": "ExpressionStatement", - "src": "5199:60:2" - } - ] - }, - "documentation": "@notice Increments the amount of funds allocated to a particular\n darknode.\n\n /// @param _darknode The address of the darknode to increase balance of\n @param _token The token which the balance should be incremented\n @param _amount The amount that the balance should be incremented by", - "id": 1215, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1169, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4947:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4947:9:2" - } - ], - "name": "incrementDarknodeBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4886:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4886:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1165, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4905:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4905:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1167, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4921:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4921:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4885:52:2" - }, - "returnParameters": { - "id": 1171, - "nodeType": "ParameterList", - "parameters": [], - "src": "4957:0:2" - }, - "scope": 1287, - "src": "4852:414:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "5672:436:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5690:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1231, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5707:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1232, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5718:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1234, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5729:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5690:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e74206461726b6e6f64652062616c616e6365", - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5738:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - }, - "value": "insufficient darknode balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5682:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5682:88:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1238, - "nodeType": "ExpressionStatement", - "src": "5682:88:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1239, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5780:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1242, - "indexExpression": { - "argumentTypes": null, - "id": 1240, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5797:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5780:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1243, - "indexExpression": { - "argumentTypes": null, - "id": 1241, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5808:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5780:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5858:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1244, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5818:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1246, - "indexExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5835:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1248, - "indexExpression": { - "argumentTypes": null, - "id": 1247, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5846:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "5818:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5780:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1253, - "nodeType": "ExpressionStatement", - "src": "5780:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1254, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5876:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1256, - "indexExpression": { - "argumentTypes": null, - "id": 1255, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5891:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5876:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1261, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5928:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1257, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5901:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1259, - "indexExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5901:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "5901:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5876:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "5876:60:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1265, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5951:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1266, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "5961:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5951:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1283, - "nodeType": "Block", - "src": "6030:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "6071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6083:7:2", - "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, - "id": 1276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "6050:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1275, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8049, - "src": "6044:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8049_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - }, - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4560, - "src": "6044:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8309_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$8309_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "6044:47:2" - } - ] - }, - "id": 1284, - "nodeType": "IfStatement", - "src": "5947:155:2", - "trueBody": { - "id": 1274, - "nodeType": "Block", - "src": "5971:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1271, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6005:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1268, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "5985:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5985:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5985:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1273, - "nodeType": "ExpressionStatement", - "src": "5985:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Transfers an amount out of balance to a specified address\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer\n @param _amount The amount to transfer\n @param _recipient The address to withdraw it to", - "id": 1286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1226, - "modifierName": { - "argumentTypes": null, - "id": 1225, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5662:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5662:9:2" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5573:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5592:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5592:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5608:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5608:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5625:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5625:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5572:80:2" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [], - "src": "5672:0:2" - }, - "scope": 1287, - "src": "5555:553:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1288, - "src": "559:5552:2" - } - ], - "src": "0:6112:2" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "exportedSymbols": { - "DarknodePaymentStore": [ - 1287 - ] - }, - "id": 1288, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 961, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 962, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7542, - "src": "25:59:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 963, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 8050, - "src": "85:63:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 964, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4464, - "src": "150:36:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 965, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4818, - "src": "187:51:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 966, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 2391, - "src": "239:50:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 967, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4463, - "src": "592:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4463", - "typeString": "contract Claimable" - } - }, - "id": 968, - "nodeType": "InheritanceSpecifier", - "src": "592:9:2" - } - ], - "contractDependencies": [ - 4463 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePaymentStore is responsible for tracking black/whitelisted\n darknodes as well as the balances which have been allocated to the\n darknodes. It is also responsible for holding the tokens to be paid\n out to darknodes.", - "fullyImplemented": true, - "id": 1287, - "linearizedBaseContracts": [ - 1287, - 4463 - ], - "name": "DarknodePaymentStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 971, - "libraryName": { - "contractScope": null, - "id": 969, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "614:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "608:27:2", - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 974, - "libraryName": { - "contractScope": null, - "id": 972, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4817, - "src": "646:24:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4817", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "640:41:2", - "typeName": { - "contractScope": null, - "id": 973, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8049, - "src": "675:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 976, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "687:21:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 975, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "687:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 979, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "803:77:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "838:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 981, - "name": "darknodeWhitelistLength", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "929:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "929:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 987, - "name": "darknodeBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1030:71:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 986, - "keyType": { - "id": 982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1030:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 985, - "keyType": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1049:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1068:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 991, - "name": "lockedBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1157:49:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 990, - "keyType": { - "id": 988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1157:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 995, - "name": "darknodeBlacklist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1271:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 994, - "keyType": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1271:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1290:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 999, - "name": "darknodeWhitelist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1388:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 998, - "keyType": { - "id": 996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1388:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "1618:35:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1004, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "1628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1005, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1638:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1628:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1628:18:2" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.", - "id": 1009, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "1582:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1582:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:38:2" - }, - "returnParameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "1618:0:2" - }, - "scope": 1287, - "src": "1561:92:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1012, - "nodeType": "Block", - "src": "1766:7:2", - "statements": [] - }, - "documentation": "@notice Allow direct payments to be made to the DarknodePaymentStore.", - "id": 1013, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [], - "src": "1746:2:2" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:2" - }, - "scope": 1287, - "src": "1737:36:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "2020:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1020, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "2037:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "2055:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2037:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2069:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2037:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1019, - "id": 1025, - "nodeType": "Return", - "src": "2030:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is blacklisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is blacklisted", - "id": 1027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isBlacklisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1015, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "1974:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1973:19:2" - }, - "returnParameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1018, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "2014:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2013:6:2" - }, - "scope": 1287, - "src": "1951:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "2324:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1034, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "2341:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1036, - "indexExpression": { - "argumentTypes": null, - "id": 1035, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "2359:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2341:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2373:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2341:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1033, - "id": 1039, - "nodeType": "Return", - "src": "2334:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is whitelisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is whitelisted", - "id": 1041, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1029, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2278:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2277:19:2" - }, - "returnParameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2318:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1031, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2318:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:6:2" - }, - "scope": 1287, - "src": "2255:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "2642:169:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2656:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2656:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1066, - "nodeType": "Block", - "src": "2735:70:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1062, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8395, - "src": "2788:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2780:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1058, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2762:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1057, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8049, - "src": "2756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8049_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 7693, - "src": "2756:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1065, - "nodeType": "Return", - "src": "2749:45:2" - } - ] - }, - "id": 1067, - "nodeType": "IfStatement", - "src": "2652:153:2", - "trueBody": { - "id": 1056, - "nodeType": "Block", - "src": "2676:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8395, - "src": "2705:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2697:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1055, - "nodeType": "Return", - "src": "2690:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Get the total balance of the contract for a particular token\n\n /// @param _token The token to check balance of\n @return The total balance of the contract", - "id": 1069, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2596:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2595:16:2" - }, - "returnParameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2633:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2632:9:2" - }, - "scope": 1287, - "src": "2574:237:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1085, - "nodeType": "Block", - "src": "3187:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1080, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3229:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1082, - "indexExpression": { - "argumentTypes": null, - "id": 1081, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3244:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3229:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3217:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1076, - "name": "totalBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "3204:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "3204:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1075, - "id": 1084, - "nodeType": "Return", - "src": "3197:55:2" - } - ] - }, - "documentation": "@notice Get the available balance of the contract for a particular token\n This is the free amount which has not yet been allocated to\n darknodes.\n\n /// @param _token The token to check balance of\n @return The available balance of the contract", - "id": 1086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3141:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3140:16:2" - }, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3178:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3177:9:2" - }, - "scope": 1287, - "src": "3115:144:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "3622:407:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3640:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3655:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1094, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "3641:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3641:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c726561647920626c61636b6c6973746564", - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3667:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - }, - "value": "darknode already blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - } - ], - "id": 1093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3632:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1100, - "nodeType": "ExpressionStatement", - "src": "3632:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1101, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "3708:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1103, - "indexExpression": { - "argumentTypes": null, - "id": 1102, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3726:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3708:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1104, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "3739:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3708:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "3708:46:2" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1109, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3819:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1108, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "3805:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3805:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1125, - "nodeType": "IfStatement", - "src": "3801:222:2", - "trueBody": { - "id": 1124, - "nodeType": "Block", - "src": "3831:192:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1111, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3845:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1113, - "indexExpression": { - "argumentTypes": null, - "id": 1112, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3863:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3845:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3876:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3845:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "3845:32:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1117, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3956:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4010:1:2", - "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": 1118, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3982:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "3982:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3982:30:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3956:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "3956:56:2" - } - ] - } - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in reward allocation.\n If the darknode is whitelisted, it is removed from the whitelist\n and the number of whitelisted nodes is decreased.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 1127, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1091, - "modifierName": { - "argumentTypes": null, - "id": 1090, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3612:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3612:9:2" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "3584:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3584:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3583:19:2" - }, - "returnParameters": { - "id": 1092, - "nodeType": "ParameterList", - "parameters": [], - "src": "3622:0:2" - }, - "scope": 1287, - "src": "3565:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1160, - "nodeType": "Block", - "src": "4269:246:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4287:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1136, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4302:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1135, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "4288:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4314:25:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4279:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "4279:61:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4358:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4373:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1143, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "4359:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c72656164792077686974656c6973746564", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4385:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - }, - "value": "darknode already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - } - ], - "id": 1142, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4350:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1149, - "nodeType": "ExpressionStatement", - "src": "4350:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "4427:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4427:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "4458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4458:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4427:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1156, - "nodeType": "ExpressionStatement", - "src": "4427:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4483:25:2", - "subExpression": { - "argumentTypes": null, - "id": 1157, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4483:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "nodeType": "ExpressionStatement", - "src": "4483:25:2" - } - ] - }, - "documentation": "@notice Whitelists a darknode allowing it to participate in reward\n allocation.\n\n /// @param _darknode The address of the darknode to whitelist", - "id": 1161, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4259:9:2" - } - ], - "name": "whitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "4231:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4230:19:2" - }, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "4269:0:2" - }, - "scope": 1287, - "src": "4212:303:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "4957:309:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "4975:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4985:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4975:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420616d6f756e74", - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:16:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - }, - "value": "invalid amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - } - ], - "id": 1172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4967:38:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "4967:38:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5040:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1180, - "name": "availableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "5023:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1183, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5023:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420636f6e74726163742062616c616e6365", - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5060:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - }, - "value": "insufficient contract balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - } - ], - "id": 1179, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5015:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:77:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "5015:77:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1188, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5103:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5120:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5103:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1192, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5103:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1199, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1193, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5141:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1195, - "indexExpression": { - "argumentTypes": null, - "id": 1194, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5158:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1197, - "indexExpression": { - "argumentTypes": null, - "id": 1196, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5169:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "5141:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5103:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "5103:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1203, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5199:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1205, - "indexExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5214:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5199:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1206, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5224:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1208, - "indexExpression": { - "argumentTypes": null, - "id": 1207, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5239:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5224:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "5224:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5224:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1213, - "nodeType": "ExpressionStatement", - "src": "5199:60:2" - } - ] - }, - "documentation": "@notice Increments the amount of funds allocated to a particular\n darknode.\n\n /// @param _darknode The address of the darknode to increase balance of\n @param _token The token which the balance should be incremented\n @param _amount The amount that the balance should be incremented by", - "id": 1215, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1169, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4947:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4947:9:2" - } - ], - "name": "incrementDarknodeBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4886:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4886:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1165, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4905:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4905:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1167, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4921:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4921:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4885:52:2" - }, - "returnParameters": { - "id": 1171, - "nodeType": "ParameterList", - "parameters": [], - "src": "4957:0:2" - }, - "scope": 1287, - "src": "4852:414:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "5672:436:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5690:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1231, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5707:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1232, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5718:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1234, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5729:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5690:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e74206461726b6e6f64652062616c616e6365", - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5738:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - }, - "value": "insufficient darknode balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "5682:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5682:88:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1238, - "nodeType": "ExpressionStatement", - "src": "5682:88:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1239, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5780:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1242, - "indexExpression": { - "argumentTypes": null, - "id": 1240, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5797:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5780:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1243, - "indexExpression": { - "argumentTypes": null, - "id": 1241, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5808:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5780:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5858:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1244, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5818:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1246, - "indexExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5835:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1248, - "indexExpression": { - "argumentTypes": null, - "id": 1247, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5846:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "5818:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5780:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1253, - "nodeType": "ExpressionStatement", - "src": "5780:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1254, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5876:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1256, - "indexExpression": { - "argumentTypes": null, - "id": 1255, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5891:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5876:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1261, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5928:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1257, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5901:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1259, - "indexExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5901:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "5901:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5876:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "5876:60:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1265, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5951:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1266, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "5961:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5951:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1283, - "nodeType": "Block", - "src": "6030:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "6071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6083:7:2", - "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, - "id": 1276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "6050:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1275, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8049, - "src": "6044:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8049_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8049", - "typeString": "contract ERC20" - } - }, - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4560, - "src": "6044:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8309_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$8309_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "6044:47:2" - } - ] - }, - "id": 1284, - "nodeType": "IfStatement", - "src": "5947:155:2", - "trueBody": { - "id": 1274, - "nodeType": "Block", - "src": "5971:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1271, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6005:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1268, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "5985:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5985:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5985:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1273, - "nodeType": "ExpressionStatement", - "src": "5985:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Transfers an amount out of balance to a specified address\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer\n @param _amount The amount to transfer\n @param _recipient The address to withdraw it to", - "id": 1286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1226, - "modifierName": { - "argumentTypes": null, - "id": 1225, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5662:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5662:9:2" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5573:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5592:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5592:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5608:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5608:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5625:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5625:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5572:80:2" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [], - "src": "5672:0:2" - }, - "scope": 1287, - "src": "5555:553:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1288, - "src": "559:5552:2" - } - ], - "src": "0:6112:2" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -8902,114 +402,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T02:30:53.659Z", - "devdoc": { - "methods": { - "availableBalance(address)": { - "params": { - "_token": "The token to check balance of" - }, - "return": "The available balance of the contract" - }, - "blacklist(address)": { - "params": { - "_darknode": "The address of the darknode to blacklist" - } - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version." - } - }, - "incrementDarknodeBalance(address,address,uint256)": { - "params": { - "_amount": "The amount that the balance should be incremented by", - "_darknode": "The address of the darknode to increase balance of", - "_token": "The token which the balance should be incremented" - } - }, - "isBlacklisted(address)": { - "params": { - "_darknode": "The address of the darknode" - }, - "return": "true if the darknode is blacklisted" - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "isWhitelisted(address)": { - "params": { - "_darknode": "The address of the darknode" - }, - "return": "true if the darknode is whitelisted" - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "totalBalance(address)": { - "params": { - "_token": "The token to check balance of" - }, - "return": "The total balance of the contract" - }, - "transfer(address,address,uint256,address)": { - "params": { - "_amount": "The amount to transfer", - "_darknode": "The address of the darknode", - "_recipient": "The address to withdraw it to", - "_token": "Which token to transfer" - } - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - }, - "whitelist(address)": { - "params": { - "_darknode": "The address of the darknode to whitelist" - } - } - } - }, - "userdoc": { - "methods": { - "availableBalance(address)": { - "notice": "Get the available balance of the contract for a particular token This is the free amount which has not yet been allocated to darknodes. " - }, - "blacklist(address)": { - "notice": "Blacklists a darknode from participating in reward allocation. If the darknode is whitelisted, it is removed from the whitelist and the number of whitelisted nodes is decreased. " - }, - "constructor": "The contract constructor. ", - "incrementDarknodeBalance(address,address,uint256)": { - "notice": "Increments the amount of funds allocated to a particular darknode. " - }, - "isBlacklisted(address)": { - "notice": "Checks to see if a darknode is blacklisted " - }, - "isWhitelisted(address)": { - "notice": "Checks to see if a darknode is whitelisted " - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "totalBalance(address)": { - "notice": "Get the total balance of the contract for a particular token " - }, - "transfer(address,address,uint256,address)": { - "notice": "Transfers an amount out of balance to a specified address " - }, - "whitelist(address)": { - "notice": "Whitelists a darknode allowing it to participate in reward allocation. " - } - }, - "notice": "DarknodePaymentStore is responsible for tracking black/whitelisted darknodes as well as the balances which have been allocated to the darknodes. It is also responsible for holding the tokens to be paid out to darknodes." - } + "updatedAt": "2019-06-26T02:30:53.659Z" } \ No newline at end of file diff --git a/build/devnet/DarknodeRegistry.json b/build/devnet/DarknodeRegistry.json index d46c1fd8..860845cb 100644 --- a/build/devnet/DarknodeRegistry.json +++ b/build/devnet/DarknodeRegistry.json @@ -870,28765 +870,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isPendingRegistration\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodesNextEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumBond\",\"type\":\"uint256\"}],\"name\":\"updateMinimumBond\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodeOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextSlasher\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isPendingDeregistration\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getPreviousDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumEpochInterval\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumEpochInterval\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_prover\",\"type\":\"address\"},{\"name\":\"_challenger1\",\"type\":\"address\"},{\"name\":\"_challenger2\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRefundable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"previousEpoch\",\"outputs\":[{\"name\":\"epochhash\",\"type\":\"uint256\"},{\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumEpochInterval\",\"type\":\"uint256\"}],\"name\":\"updateMinimumEpochInterval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumPodSize\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodesPreviousEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"name\":\"epochhash\",\"type\":\"uint256\"},{\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRegisteredInPreviousEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isDeregistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumPodSize\",\"type\":\"uint256\"}],\"name\":\"updateMinimumPodSize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"deregister\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodePublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ren\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"epoch\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"store\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_slasher\",\"type\":\"address\"}],\"name\":\"updateSlasher\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodeBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPodSize\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isDeregisterable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"refund\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRefunded\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_renAddress\",\"type\":\"address\"},{\"name\":\"_storeAddress\",\"type\":\"address\"},{\"name\":\"_minimumBond\",\"type\":\"uint256\"},{\"name\":\"_minimumPodSize\",\"type\":\"uint256\"},{\"name\":\"_minimumEpochInterval\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknodeID\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_bond\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"LogDarknodeDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeOwnerRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"epochhash\",\"type\":\"uint256\"}],\"name\":\"LogNewEpoch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumBond\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumBond\",\"type\":\"uint256\"}],\"name\":\"LogMinimumBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumPodSize\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumPodSize\",\"type\":\"uint256\"}],\"name\":\"LogMinimumPodSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumEpochInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumEpochInterval\",\"type\":\"uint256\"}],\"name\":\"LogMinimumEpochIntervalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousSlasher\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"nextSlasher\",\"type\":\"address\"}],\"name\":\"LogSlasherUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_minimumBond\":\"The minimum bond amount that can be submitted by a Darknode.\",\"_minimumEpochInterval\":\"The minimum number of blocks between epochs.\",\"_minimumPodSize\":\"The minimum size of a Darknode pod.\",\"_renAddress\":\"The address of the RenToken contract.\",\"_storeAddress\":\"The address of the DarknodeRegistryStore contract.\"}},\"deregister(address)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be deregistered. The caller of this method store.darknodeRegisteredAt(_darknodeID) must be\"}},\"getDarknodeBond(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the bond for.\"}},\"getDarknodeOwner(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the owner for.\"}},\"getDarknodePublicKey(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the public key for.\"}},\"getDarknodes(address,uint256)\":{\"params\":{\"_count\":\"The number of darknodes to retrieve starting from _start. If _count is 0, all of the darknodes from _start are retrieved. If _count is more than the remaining number of registered darknodes, the rest of the list will contain 0x0s.\",\"_start\":\"A darknode ID used as an offset for the list. If _start is 0x0, the first dark node will be used. _start won't be included it is not registered for the epoch.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"isPendingRegistration(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to return\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"refund(address)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be refunded. The caller of this method must be the owner of this darknode.\"}},\"register(address,bytes)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be registered.\",\"_publicKey\":\"The public key of the darknode. It is stored to allow other darknodes and traders to encrypt messages to the trader.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"slash(address,address,address)\":{\"params\":{\"_challenger1\":\"The first of the two darknodes who submitted the challenge\",\"_challenger2\":\"The second of the two darknodes who submitted the challenge\",\"_prover\":\"The guilty prover whose bond is being slashed\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferStoreOwnership(address)\":{\"params\":{\"_newOwner\":\"The address to transfer the ownership to.\"}},\"updateMinimumBond(uint256)\":{\"params\":{\"_nextMinimumBond\":\"The minimum bond amount that can be submitted by a darknode.\"}},\"updateMinimumEpochInterval(uint256)\":{\"params\":{\"_nextMinimumEpochInterval\":\"The minimum number of blocks between epochs.\"}},\"updateMinimumPodSize(uint256)\":{\"params\":{\"_nextMinimumPodSize\":\"The minimum size of a pod.\"}},\"updateSlasher(address)\":{\"params\":{\"_slasher\":\"The new slasher address.\"}}}},\"userdoc\":{\"methods\":{\"claimStoreOwnership()\":{\"notice\":\"Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another Darknode Registry.\"},\"constructor\":\"The contract constructor. \",\"deregister(address)\":{\"notice\":\"Deregister a darknode. The darknode will not be deregistered until the end of the epoch. After another epoch, the bond can be refunded by calling the refund method.\"},\"epoch()\":{\"notice\":\"Progress the epoch if it is possible to do so. This captures the current timestamp and current blockhash and overrides the current epoch.\"},\"getDarknodeBond(address)\":{\"notice\":\"Retrieves the bond amount of a darknode in 10^-18 REN.\"},\"getDarknodeOwner(address)\":{\"notice\":\"Retrieves the address of the account that registered a darknode.\"},\"getDarknodePublicKey(address)\":{\"notice\":\"Retrieves the encryption public key of the darknode.\"},\"getDarknodes(address,uint256)\":{\"notice\":\"Retrieves a list of darknodes which are registered for the current epoch.\"},\"getPreviousDarknodes(address,uint256)\":{\"notice\":\"Retrieves a list of darknodes which were registered for the previous epoch. See `getDarknodes` for the parameter documentation.\"},\"isDeregisterable(address)\":{\"notice\":\"Returns if a darknode can be deregistered. This is true if the darknodes is in the registered state and has not attempted to deregister yet.\"},\"isDeregistered(address)\":{\"notice\":\"Returns if a darknode is in the deregistered state.\"},\"isPendingDeregistration(address)\":{\"notice\":\"Returns if a darknode is in the pending deregistered state. In this state a darknode is still considered registered.\"},\"isPendingRegistration(address)\":{\"notice\":\"Returns whether a darknode is scheduled to become registered at next epoch.\"},\"isRefundable(address)\":{\"notice\":\"Returns if a darknode is refundable. This is true for darknodes that have been in the deregistered state for one full epoch.\"},\"isRefunded(address)\":{\"notice\":\"Returns if a darknode is in the refunded state. This is true for darknodes that have never been registered, or darknodes that have been deregistered and refunded.\"},\"isRegistered(address)\":{\"notice\":\"Returns if a darknode is in the registered state.\"},\"isRegisteredInPreviousEpoch(address)\":{\"notice\":\"Returns if a darknode was in the registered state last epoch.\"},\"refund(address)\":{\"notice\":\"Refund the bond of a deregistered darknode. This will make the darknode available for registration again. Anyone can call this function but the bond will always be refunded to the darknode owner. \"},\"register(address,bytes)\":{\"notice\":\"Register a darknode and transfer the bond to this contract. Before registering, the bond transfer must be approved in the REN contract. The caller must provide a public encryption key for the darknode. The darknode will remain pending registration until the next epoch. Only after this period can the darknode be deregistered. The caller of this method will be stored as the owner of the darknode. \"},\"slash(address,address,address)\":{\"notice\":\"Allow the DarknodeSlasher contract to slash half of a darknode's bond and deregister it. The bond is distributed as follows: 1/2 is kept by the guilty prover 1/8 is rewarded to the first challenger 1/8 is rewarded to the second challenger 1/4 becomes unassigned\"},\"transferStoreOwnership(address)\":{\"notice\":\"Allows the contract owner to initiate an ownership transfer of the DarknodeRegistryStore. \"},\"updateMinimumBond(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum bond.\"},\"updateMinimumEpochInterval(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum epoch interval.\"},\"updateMinimumPodSize(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum pod size.\"},\"updateSlasher(address)\":{\"notice\":\"Allow the contract owner to update the DarknodeSlasher contract address.\"}},\"notice\":\"DarknodeRegistry is responsible for the registration and deregistration of Darknodes.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":\"DarknodeRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b506040516200296c3803806200296c833981018060405260c08110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505060208201516040808401516060850151608086015160a090960151600080546001600160a01b0319163317808255945196995094975091959094909391926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a385516200010490600190602089019062000188565b50601080546001600160a01b039586166001600160a01b031991821617909155600f805496909516951694909417909255600581905560085560068190556009556007819055600a555060408051808201909152436000198101408083526020909201819052600b91909155600c556000600281905560038190556004556200022d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001cb57805160ff1916838001178555620001fb565b82800160010185558215620001fb579182015b82811115620001fb578251825591602001919060010190620001de565b50620002099291506200020d565b5090565b6200022a91905b8082111562000209576000815560010162000214565b90565b61272f806200023d6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80638020fc1f11610151578063b3139d38116100c3578063e187892511610087578063e18789251461073e578063ec5325c114610764578063f2fde38b14610790578063fa89401a146107b6578063ffa1ad74146107dc578063ffc9152e146107e457610274565b8063b3139d381461069e578063ba0f5b20146106c4578063c2250a99146106ea578063c3c5a54714610710578063c7dbc2be1461073657610274565b80638da5cb5b116101155780638da5cb5b1461066e5780638f32d59b14610676578063900cf0cf1461067e578063975057e714610686578063aa7517e11461068e578063b13442711461069657610274565b80638020fc1f1461056257806380a0c4611461058857806384ac33ec146105a557806384d2688c146105cb5780638a9b40671461066657610274565b8063563bf264116101ea5780636fd689e8116101ae5780636fd689e814610514578063702c25ee1461051c578063715018a61461052457806371740d161461052c57806376671808146105345780637be266da1461053c57610274565b8063563bf264146104705780635aebd1cb146104a85780635cdaab48146104ce57806360a22fe4146104ef57806363b851b9146104f757610274565b806321a2ad3a1161023c57806321a2ad3a1461033657806324b8fbf61461033e578063303ee989146103be57806343846074146103e4578063455dc46d1461046057806355cacda51461046857610274565b8063040fa051146102795780630847e9fa146102b35780630ff9aafe146102cd5780631460e603146102ec5780631cedf8a3146102f4575b600080fd5b61029f6004803603602081101561028f57600080fd5b50356001600160a01b031661080a565b604080519115158252519081900360200190f35b6102bb6108a1565b60408051918252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b50356108a7565b005b6102bb6108f6565b61031a6004803603602081101561030a57600080fd5b50356001600160a01b03166108fc565b604080516001600160a01b039092168252519081900360200190f35b61031a610982565b6102ea6004803603604081101561035457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b509092509050610991565b61029f600480360360208110156103d457600080fd5b50356001600160a01b0316610c12565b610410600480360360408110156103fa57600080fd5b506001600160a01b038135169060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044c578181015183820152602001610434565b505050509050019250505060405180910390f35b6102bb610c84565b6102bb610c8a565b6102ea6004803603606081101561048657600080fd5b506001600160a01b038135811691602081013582169160409091013516610c90565b61029f600480360360208110156104be57600080fd5b50356001600160a01b03166110b6565b6104d661114f565b6040805192835260208301919091528051918290030190f35b6102bb611158565b6102ea6004803603602081101561050d57600080fd5b503561115e565b6102ea6111ad565b6102bb611261565b6102ea611267565b6102bb6112fb565b6104d6611301565b61029f6004803603602081101561055257600080fd5b50356001600160a01b031661130a565b61029f6004803603602081101561057857600080fd5b50356001600160a01b031661132f565b6102ea6004803603602081101561059e57600080fd5b50356113c3565b6102ea600480360360208110156105bb57600080fd5b50356001600160a01b0316611412565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316611559565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561062b578181015183820152602001610613565b50505050905090810190601f1680156106585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a61163b565b61031a61164a565b61029f611659565b6102ea61166a565b61031a61191d565b6102bb61192c565b61031a611932565b6102ea600480360360208110156106b457600080fd5b50356001600160a01b0316611941565b6102bb600480360360208110156106da57600080fd5b50356001600160a01b0316611a0b565b6102ea6004803603602081101561070057600080fd5b50356001600160a01b0316611a5f565b61029f6004803603602081101561072657600080fd5b50356001600160a01b0316611b0e565b6102bb611b33565b61029f6004803603602081101561075457600080fd5b50356001600160a01b0316611b39565b6104106004803603604081101561077a57600080fd5b506001600160a01b038135169060200135611bcf565b6102ea600480360360208110156107a657600080fd5b50356001600160a01b0316611be8565b6102ea600480360360208110156107cc57600080fd5b50356001600160a01b0316611c3e565b6105f1611f11565b61029f600480360360208110156107fa57600080fd5b50356001600160a01b0316611f9e565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d602081101561088657600080fd5b50519050801580159061089a5750600c5481115b9392505050565b60035481565b6108af611659565b6108f15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600855565b60025481565b60105460408051600160e01b63a30788150281526001600160a01b0384811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b15801561095057600080fd5b505afa158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b505192915050565b6012546001600160a01b031681565b8261099b81611f9e565b6109d957604051600160e51b62461bcd02815260040180806020018281038252602481526020018061266f6024913960400191505060405180910390fd5b600554600f5460105460408051600160e01b6323b872dd0281523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3e57600080fd5b505af1158015610a52573d6000803e3d6000fd5b505050506040513d6020811015610a6857600080fd5b5051610abe5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b601054600754600c546001600160a01b039092169163a85ef579918891339186918a918a91610af29163ffffffff6120b016565b60006040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001868152602001806020018481526020018381526020018281038252868682818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b5050600354610bc992509050600163ffffffff6120b016565b6003556040805182815290516001600160a01b038716917fd2819ba4c736158371edf0be38fd8d1fc435609832e392f118c4c79160e5bd7b919081900360200190a25050505050565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561085c57600080fd5b60608180610c7057506004545b610c7c8482600161210d565b949350505050565b600a5481565b60075481565b6011546001600160a01b03163314610cf25760408051600160e51b62461bcd02815260206004820152600f60248201527f6d75737420626520736c61736865720000000000000000000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63cad413570281526001600160a01b0386811660048301529151600093600293169163cad41357916024808301926020929190829003018186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d6020811015610d6f57600080fd5b505181610d7857fe5b049050600060048260105460408051600160e21b633ef100bf0281526001600160a01b038a81166004830152602482018890529151949093049450169163fbc402fc9160448082019260009290919082900301818387803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050610dfd85611b39565b15610e0b57610e0b85612348565b600f5460105460408051600160e01b63a30788150281526001600160a01b03888116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b505050506040513d6020811015610f0757600080fd5b5051610f5d5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b600f5460105460408051600160e01b63a30788150281526001600160a01b03878116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b505050506040513d602081101561105957600080fd5b50516110af5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b5050505050565b60006110c18261132f565b80156111495750600e5460105460408051600160e11b62c985b70281526001600160a01b038681166004830152915191909216916301930b6e916024808301926020929190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b505111155b92915050565b600d54600e5482565b60085481565b611166611659565b6111a85760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600a55565b6111b5611659565b6111f75760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b601060009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50505050565b60095481565b61126f611659565b6112b15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b600b54600c5482565b60408051808201909152600d548152600e54602082015260009061114990839061242a565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b50519050801580159061089a5750600c54101592915050565b6113cb611659565b61140d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600955565b8061141c81611b39565b6114705760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206465726567697374657261626c6500000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63a30788150281526001600160a01b038086166004830152915185933393169163a3078815916024808301926020929190829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50516001600160a01b03161461154b5760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b61155483612348565b505050565b60105460408051600160e41b630ee594a50281526001600160a01b0384811660048301529151606093929092169163ee594a5091602480820192600092909190829003018186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115ea57600080fd5b81019080805164010000000081111561160257600080fd5b8201602081018481111561161557600080fd5b815164010000000081118282018710171561162f57600080fd5b50909695505050505050565b600f546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600e546116e15761167961164a565b6001600160a01b0316336001600160a01b0316146116e15760408051600160e51b62461bcd02815260206004820152601d60248201527f6e6f7420617574686f72697a6564202866697273742065706f63687329000000604482015290519081900360640190fd5b600754600c546116f69163ffffffff6120b016565b43101561174d5760408051600160e51b62461bcd02815260206004820152601d60248201527f65706f636820696e74657276616c20686173206e6f7420706173736564000000604482015290519081900360640190fd5b600b8054600d55600c8054600e556040805180820190915243600019810140808352602090920181905292819055919055600280546004556003549055600554600854146117d957600854600581905560408051828152602081019290925280517f7c77c94944e9e4e5b0d46f1297127d060020792687cd743401d782346c68f6559281900390910190a15b6006546009541461182857600954600681905560408051828152602081019290925280517f6d520e46e5714982ddf8cb6216bcb3e1c1d5b79d337afc305335f819394f5d6a9281900390910190a15b600754600a541461187757600a54600781905560408051828152602081019290925280517fb218cde2730b79a0667ddf869466ee66a12ef56fe65fa4986a590f8a7108c9de9281900390910190a15b6011546012546001600160a01b039081169116146118ef57601254601180546001600160a01b0319166001600160a01b039283169081179182905560408051929093168252602082015281517f933228a1c3ba8fadd3ce47a9db5b898be647f89af99ba7c1b9a655f59ea306c8929181900390910190a15b60405181907faf2fc4796f2932ce294c3684deffe5098d3ef65dc2dd64efa80ef94eed88b01e90600090a250565b6010546001600160a01b031681565b60055481565b6011546001600160a01b031681565b611949611659565b61198b5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b6001600160a01b0381166119e95760408051600160e51b62461bcd02815260206004820152601760248201527f696e76616c696420736c61736865722061646472657373000000000000000000604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60105460408051600160e01b63cad413570281526001600160a01b0384811660048301529151600093929092169163cad4135791602480820192602092909190829003018186803b15801561095057600080fd5b611a67611659565b611aa95760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b60105460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015611afa57600080fd5b505af11580156110af573d6000803e3d6000fd5b60408051808201909152600b548152600c54602082015260009061114990839061242a565b60065481565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d6020811015611bb457600080fd5b50519050611bc183611b0e565b801561089a57501592915050565b60608180611bdc57506002545b610c7c8482600061210d565b611bf0611659565b611c325760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b611c3b8161256b565b50565b80611c48816110b6565b611c8657604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806126b9602b913960400191505060405180910390fd5b60105460408051600160e01b63a30788150281526001600160a01b0385811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b158015611cda57600080fd5b505afa158015611cee573d6000803e3d6000fd5b505050506040513d6020811015611d0457600080fd5b505160105460408051600160e01b63cad413570281526001600160a01b0387811660048301529151939450600093919092169163cad41357916024808301926020929190829003018186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b505160105460408051600160e11b6320da21c90281526001600160a01b03888116600483015291519394509116916341b443929160248082019260009290919082900301818387803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b5050600f5460408051600160e01b63a9059cbb0281526001600160a01b03878116600483015260248201879052915191909216935063a9059cbb925060448083019260209291908290030181600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b5051611ecc5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b6040805182815290516001600160a01b038416917f96ab9e56c79eee4a72db6e2879cbfbecdba5c65b411f4861824e66b89df19764919081900360200190a250505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611f965780601f10611f6b57610100808354040283529160200191611f96565b820191906000526020600020905b815481529060010190602001808311611f7957829003601f168201915b505050505081565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d602081101561201a57600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038781166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b15801561207157600080fd5b505afa158015612085573d6000803e3d6000fd5b505050506040513d602081101561209b57600080fd5b5051905081158015610c7c5750159392505050565b60008282018381101561089a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060828061211a57506002545b606081604051908082528060200260200182016040528015612146578160200160208202803883390190505b5090506000866001600160a01b0381166121d757601060009054906101000a90046001600160a01b03166001600160a01b0316631bce6ff36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b505190505b8382101561162f576001600160a01b0381166121f25761162f565b6000861561220a576122038261130a565b9050612216565b61221382611b0e565b90505b806122a05760105460408051600160e11b6355b9f18b0281526001600160a01b0385811660048301529151919092169163ab73e316916024808301926020929190829003018186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d602081101561229557600080fd5b505191506121d79050565b818484815181106122ad57fe5b6001600160a01b0392831660209182029290920181019190915260105460408051600160e11b6355b9f18b02815286851660048201529051919093169263ab73e316926024808301939192829003018186803b15801561230c57600080fd5b505afa158015612320573d6000803e3d6000fd5b505050506040513d602081101561233657600080fd5b50516001939093019291506121d79050565b601054600754600c546001600160a01b0390921691633ac39d4b9184916123749163ffffffff6120b016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50506003546123f092509050600163ffffffff61260e16565b6003556040516001600160a01b038216907f2dc89de5703d2c341a22ebfc7c4d3f197e5e1f0c19bc2e1135f387163cb927e490600090a250565b60105460408051600160e21b6338b5f1930281526001600160a01b03858116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d60208110156124a657600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038881166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d602081101561252757600080fd5b5051905060008215801590612540575084602001518311155b905060008215806125545750856020015183115b90508180156125605750805b979650505050505050565b6001600160a01b0381166125b357604051600160e51b62461bcd0281526004018080602001828103825260268152602001806126936026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156126685760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe6d75737420626520726566756e646564206f72206e6576657220726567697374657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f63684f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058208517b004b2026d01b1448d146ce097bb267c9649ace695b74d180d77473999a80029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102745760003560e01c80638020fc1f11610151578063b3139d38116100c3578063e187892511610087578063e18789251461073e578063ec5325c114610764578063f2fde38b14610790578063fa89401a146107b6578063ffa1ad74146107dc578063ffc9152e146107e457610274565b8063b3139d381461069e578063ba0f5b20146106c4578063c2250a99146106ea578063c3c5a54714610710578063c7dbc2be1461073657610274565b80638da5cb5b116101155780638da5cb5b1461066e5780638f32d59b14610676578063900cf0cf1461067e578063975057e714610686578063aa7517e11461068e578063b13442711461069657610274565b80638020fc1f1461056257806380a0c4611461058857806384ac33ec146105a557806384d2688c146105cb5780638a9b40671461066657610274565b8063563bf264116101ea5780636fd689e8116101ae5780636fd689e814610514578063702c25ee1461051c578063715018a61461052457806371740d161461052c57806376671808146105345780637be266da1461053c57610274565b8063563bf264146104705780635aebd1cb146104a85780635cdaab48146104ce57806360a22fe4146104ef57806363b851b9146104f757610274565b806321a2ad3a1161023c57806321a2ad3a1461033657806324b8fbf61461033e578063303ee989146103be57806343846074146103e4578063455dc46d1461046057806355cacda51461046857610274565b8063040fa051146102795780630847e9fa146102b35780630ff9aafe146102cd5780631460e603146102ec5780631cedf8a3146102f4575b600080fd5b61029f6004803603602081101561028f57600080fd5b50356001600160a01b031661080a565b604080519115158252519081900360200190f35b6102bb6108a1565b60408051918252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b50356108a7565b005b6102bb6108f6565b61031a6004803603602081101561030a57600080fd5b50356001600160a01b03166108fc565b604080516001600160a01b039092168252519081900360200190f35b61031a610982565b6102ea6004803603604081101561035457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b509092509050610991565b61029f600480360360208110156103d457600080fd5b50356001600160a01b0316610c12565b610410600480360360408110156103fa57600080fd5b506001600160a01b038135169060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044c578181015183820152602001610434565b505050509050019250505060405180910390f35b6102bb610c84565b6102bb610c8a565b6102ea6004803603606081101561048657600080fd5b506001600160a01b038135811691602081013582169160409091013516610c90565b61029f600480360360208110156104be57600080fd5b50356001600160a01b03166110b6565b6104d661114f565b6040805192835260208301919091528051918290030190f35b6102bb611158565b6102ea6004803603602081101561050d57600080fd5b503561115e565b6102ea6111ad565b6102bb611261565b6102ea611267565b6102bb6112fb565b6104d6611301565b61029f6004803603602081101561055257600080fd5b50356001600160a01b031661130a565b61029f6004803603602081101561057857600080fd5b50356001600160a01b031661132f565b6102ea6004803603602081101561059e57600080fd5b50356113c3565b6102ea600480360360208110156105bb57600080fd5b50356001600160a01b0316611412565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316611559565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561062b578181015183820152602001610613565b50505050905090810190601f1680156106585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a61163b565b61031a61164a565b61029f611659565b6102ea61166a565b61031a61191d565b6102bb61192c565b61031a611932565b6102ea600480360360208110156106b457600080fd5b50356001600160a01b0316611941565b6102bb600480360360208110156106da57600080fd5b50356001600160a01b0316611a0b565b6102ea6004803603602081101561070057600080fd5b50356001600160a01b0316611a5f565b61029f6004803603602081101561072657600080fd5b50356001600160a01b0316611b0e565b6102bb611b33565b61029f6004803603602081101561075457600080fd5b50356001600160a01b0316611b39565b6104106004803603604081101561077a57600080fd5b506001600160a01b038135169060200135611bcf565b6102ea600480360360208110156107a657600080fd5b50356001600160a01b0316611be8565b6102ea600480360360208110156107cc57600080fd5b50356001600160a01b0316611c3e565b6105f1611f11565b61029f600480360360208110156107fa57600080fd5b50356001600160a01b0316611f9e565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d602081101561088657600080fd5b50519050801580159061089a5750600c5481115b9392505050565b60035481565b6108af611659565b6108f15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600855565b60025481565b60105460408051600160e01b63a30788150281526001600160a01b0384811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b15801561095057600080fd5b505afa158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b505192915050565b6012546001600160a01b031681565b8261099b81611f9e565b6109d957604051600160e51b62461bcd02815260040180806020018281038252602481526020018061266f6024913960400191505060405180910390fd5b600554600f5460105460408051600160e01b6323b872dd0281523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3e57600080fd5b505af1158015610a52573d6000803e3d6000fd5b505050506040513d6020811015610a6857600080fd5b5051610abe5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b601054600754600c546001600160a01b039092169163a85ef579918891339186918a918a91610af29163ffffffff6120b016565b60006040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001868152602001806020018481526020018381526020018281038252868682818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b5050600354610bc992509050600163ffffffff6120b016565b6003556040805182815290516001600160a01b038716917fd2819ba4c736158371edf0be38fd8d1fc435609832e392f118c4c79160e5bd7b919081900360200190a25050505050565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561085c57600080fd5b60608180610c7057506004545b610c7c8482600161210d565b949350505050565b600a5481565b60075481565b6011546001600160a01b03163314610cf25760408051600160e51b62461bcd02815260206004820152600f60248201527f6d75737420626520736c61736865720000000000000000000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63cad413570281526001600160a01b0386811660048301529151600093600293169163cad41357916024808301926020929190829003018186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d6020811015610d6f57600080fd5b505181610d7857fe5b049050600060048260105460408051600160e21b633ef100bf0281526001600160a01b038a81166004830152602482018890529151949093049450169163fbc402fc9160448082019260009290919082900301818387803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050610dfd85611b39565b15610e0b57610e0b85612348565b600f5460105460408051600160e01b63a30788150281526001600160a01b03888116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b505050506040513d6020811015610f0757600080fd5b5051610f5d5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b600f5460105460408051600160e01b63a30788150281526001600160a01b03878116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b505050506040513d602081101561105957600080fd5b50516110af5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b5050505050565b60006110c18261132f565b80156111495750600e5460105460408051600160e11b62c985b70281526001600160a01b038681166004830152915191909216916301930b6e916024808301926020929190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b505111155b92915050565b600d54600e5482565b60085481565b611166611659565b6111a85760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600a55565b6111b5611659565b6111f75760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b601060009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50505050565b60095481565b61126f611659565b6112b15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b600b54600c5482565b60408051808201909152600d548152600e54602082015260009061114990839061242a565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b50519050801580159061089a5750600c54101592915050565b6113cb611659565b61140d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600955565b8061141c81611b39565b6114705760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206465726567697374657261626c6500000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63a30788150281526001600160a01b038086166004830152915185933393169163a3078815916024808301926020929190829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50516001600160a01b03161461154b5760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b61155483612348565b505050565b60105460408051600160e41b630ee594a50281526001600160a01b0384811660048301529151606093929092169163ee594a5091602480820192600092909190829003018186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115ea57600080fd5b81019080805164010000000081111561160257600080fd5b8201602081018481111561161557600080fd5b815164010000000081118282018710171561162f57600080fd5b50909695505050505050565b600f546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600e546116e15761167961164a565b6001600160a01b0316336001600160a01b0316146116e15760408051600160e51b62461bcd02815260206004820152601d60248201527f6e6f7420617574686f72697a6564202866697273742065706f63687329000000604482015290519081900360640190fd5b600754600c546116f69163ffffffff6120b016565b43101561174d5760408051600160e51b62461bcd02815260206004820152601d60248201527f65706f636820696e74657276616c20686173206e6f7420706173736564000000604482015290519081900360640190fd5b600b8054600d55600c8054600e556040805180820190915243600019810140808352602090920181905292819055919055600280546004556003549055600554600854146117d957600854600581905560408051828152602081019290925280517f7c77c94944e9e4e5b0d46f1297127d060020792687cd743401d782346c68f6559281900390910190a15b6006546009541461182857600954600681905560408051828152602081019290925280517f6d520e46e5714982ddf8cb6216bcb3e1c1d5b79d337afc305335f819394f5d6a9281900390910190a15b600754600a541461187757600a54600781905560408051828152602081019290925280517fb218cde2730b79a0667ddf869466ee66a12ef56fe65fa4986a590f8a7108c9de9281900390910190a15b6011546012546001600160a01b039081169116146118ef57601254601180546001600160a01b0319166001600160a01b039283169081179182905560408051929093168252602082015281517f933228a1c3ba8fadd3ce47a9db5b898be647f89af99ba7c1b9a655f59ea306c8929181900390910190a15b60405181907faf2fc4796f2932ce294c3684deffe5098d3ef65dc2dd64efa80ef94eed88b01e90600090a250565b6010546001600160a01b031681565b60055481565b6011546001600160a01b031681565b611949611659565b61198b5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b6001600160a01b0381166119e95760408051600160e51b62461bcd02815260206004820152601760248201527f696e76616c696420736c61736865722061646472657373000000000000000000604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60105460408051600160e01b63cad413570281526001600160a01b0384811660048301529151600093929092169163cad4135791602480820192602092909190829003018186803b15801561095057600080fd5b611a67611659565b611aa95760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b60105460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015611afa57600080fd5b505af11580156110af573d6000803e3d6000fd5b60408051808201909152600b548152600c54602082015260009061114990839061242a565b60065481565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d6020811015611bb457600080fd5b50519050611bc183611b0e565b801561089a57501592915050565b60608180611bdc57506002545b610c7c8482600061210d565b611bf0611659565b611c325760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b611c3b8161256b565b50565b80611c48816110b6565b611c8657604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806126b9602b913960400191505060405180910390fd5b60105460408051600160e01b63a30788150281526001600160a01b0385811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b158015611cda57600080fd5b505afa158015611cee573d6000803e3d6000fd5b505050506040513d6020811015611d0457600080fd5b505160105460408051600160e01b63cad413570281526001600160a01b0387811660048301529151939450600093919092169163cad41357916024808301926020929190829003018186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b505160105460408051600160e11b6320da21c90281526001600160a01b03888116600483015291519394509116916341b443929160248082019260009290919082900301818387803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b5050600f5460408051600160e01b63a9059cbb0281526001600160a01b03878116600483015260248201879052915191909216935063a9059cbb925060448083019260209291908290030181600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b5051611ecc5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b6040805182815290516001600160a01b038416917f96ab9e56c79eee4a72db6e2879cbfbecdba5c65b411f4861824e66b89df19764919081900360200190a250505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611f965780601f10611f6b57610100808354040283529160200191611f96565b820191906000526020600020905b815481529060010190602001808311611f7957829003601f168201915b505050505081565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d602081101561201a57600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038781166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b15801561207157600080fd5b505afa158015612085573d6000803e3d6000fd5b505050506040513d602081101561209b57600080fd5b5051905081158015610c7c5750159392505050565b60008282018381101561089a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060828061211a57506002545b606081604051908082528060200260200182016040528015612146578160200160208202803883390190505b5090506000866001600160a01b0381166121d757601060009054906101000a90046001600160a01b03166001600160a01b0316631bce6ff36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b505190505b8382101561162f576001600160a01b0381166121f25761162f565b6000861561220a576122038261130a565b9050612216565b61221382611b0e565b90505b806122a05760105460408051600160e11b6355b9f18b0281526001600160a01b0385811660048301529151919092169163ab73e316916024808301926020929190829003018186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d602081101561229557600080fd5b505191506121d79050565b818484815181106122ad57fe5b6001600160a01b0392831660209182029290920181019190915260105460408051600160e11b6355b9f18b02815286851660048201529051919093169263ab73e316926024808301939192829003018186803b15801561230c57600080fd5b505afa158015612320573d6000803e3d6000fd5b505050506040513d602081101561233657600080fd5b50516001939093019291506121d79050565b601054600754600c546001600160a01b0390921691633ac39d4b9184916123749163ffffffff6120b016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50506003546123f092509050600163ffffffff61260e16565b6003556040516001600160a01b038216907f2dc89de5703d2c341a22ebfc7c4d3f197e5e1f0c19bc2e1135f387163cb927e490600090a250565b60105460408051600160e21b6338b5f1930281526001600160a01b03858116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d60208110156124a657600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038881166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d602081101561252757600080fd5b5051905060008215801590612540575084602001518311155b905060008215806125545750856020015183115b90508180156125605750805b979650505050505050565b6001600160a01b0381166125b357604051600160e51b62461bcd0281526004018080602001828103825260268152602001806126936026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156126685760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe6d75737420626520726566756e646564206f72206e6576657220726567697374657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f63684f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058208517b004b2026d01b1448d146ce097bb267c9649ace695b74d180d77473999a80029", - "sourceMap": "375:21260:3:-;;;4707:847;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:847:3;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4707:847:3;;;;;;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;;4707:847:3;;;;;;;;;;;;;;;;;;;;;;657:6:35;:19;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;4707:847:3;;-1:-1:-1;4707:847:3;;-1:-1:-1;4707:847:3;;;;;;;;-1:-1:-1;;;;;724:6:35;;657;691:40;;657:6;;691:40;4951:18:3;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;4980:5:3;:21;;-1:-1:-1;;;;;4980:21:3;;;-1:-1:-1;;;;;;4980:21:3;;;;;;;5011:3;:17;;;;;;;;;;;;;;;5039:11;:26;;;5075:15;:29;5115:14;:32;;;-1:-1:-1;5157:35:3;-1:-1:-1;5203:44:3;;;-1:-1:-1;5257:47:3;-1:-1:-1;5330:117:3;;;;;;;;;5379:12;-1:-1:-1;;5379:16:3;;5369:27;5330:117;;;;;;;;;;-1:-1:-1;5315:132:3;;;;;;4980:5;-1:-1:-1;5457:16:3;;;-1:-1:-1;5483:25:3;;;-1:-1:-1;5518:29:3;375:21260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;375:21260:3;;;-1:-1:-1;375:21260:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "375:21260:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;375:21260:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16131:237;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16131:237:3;-1:-1:-1;;;;;16131:237:3;;:::i;:::-;;;;;;;;;;;;;;;;;;859:36;;;:::i;:::-;;;;;;;;;;;;;;;;10227:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10227:161:3;;:::i;:::-;;826:27;;;:::i;13895:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13895:143:3;-1:-1:-1;;;;;13895:143:3;;:::i;:::-;;;;-1:-1:-1;;;;;13895:143:3;;;;;;;;;;;;;;1798:34;;;:::i;6248:739::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;6248:739:3;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6248:739:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6248:739:3;;;;;;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;-1:-1;6248:739:3;;-1:-1:-1;6248:739:3;-1:-1:-1;6248:739:3;:::i;16515:247::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16515:247:3;-1:-1:-1;;;;;16515:247:3;;:::i;15680:285::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15680:285:3;;;;;;;;:::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;15680:285:3;;;;;;;;;;;;;;;;;1345:39;;;:::i;1064:35::-;;;:::i;11984:812::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11984:812:3;;;;;;;;;;;;;;;;;;;:::i;18266:195::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18266:195:3;-1:-1:-1;;;;;18266:195:3;;:::i;1461:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1270:30;;;:::i;10875:197::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10875:197:3;;:::i;9954:89::-;;;:::i;1306:33::-;;;:::i;1599:137:35:-;;;:::i;901:40:3:-;;;:::i;1430:25::-;;;:::i;18757:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18757:156:3;-1:-1:-1;;;;;18757:156:3;;:::i;16836:237::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16836:237:3;-1:-1:-1;;;;;16836:237:3;;:::i;10530:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10530:173:3;;:::i;7392:161::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7392:161:3;-1:-1:-1;;;;;7392:161:3;;:::i;14481:148::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14481:148:3;-1:-1:-1;;;;;14481:148:3;;:::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;14481:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1556:19;;;:::i;814:77:35:-;;;:::i;1165:90::-;;;:::i;7729:1710:3:-;;;:::i;1653:34::-;;;:::i;997:26::-;;;:::i;1762:30::-;;;:::i;11224:184::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11224:184:3;-1:-1:-1;;;;;11224:184:3;;:::i;14191:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14191:133:3;-1:-1:-1;;;;;14191:133:3;;:::i;9627:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9627:121:3;-1:-1:-1;;;;;9627:121:3;;:::i;18533:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18533:140:3;-1:-1:-1;;;;;18533:140:3;;:::i;1029:29::-;;;:::i;17252:378::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17252:378:3;-1:-1:-1;;;;;17252:378:3;;:::i;15257:265::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15257:265:3;;;;;;;;:::i;1885:107:35:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;13181:550:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13181:550:3;-1:-1:-1;;;;;13181:550:3;;:::i;451:21::-;;;:::i;17831:280::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17831:280:3;-1:-1:-1;;;;;17831:280:3;;:::i;16131:237::-;16245:5;;:39;;;-1:-1:-1;;;;;16245:39:3;;-1:-1:-1;;;;;16245:39:3;;;;;;;;;16206:4;;;;16245:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;16245:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16245:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16245:39:3;;-1:-1:-1;16301:17:3;;;;;:60;;-1:-1:-1;16337:24:3;;16322:39;;16301:60;16294:67;16131:237;-1:-1:-1;;;16131:237:3:o;859:36::-;;;;:::o;10227:161::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;10347:15:3;:34;10227:161::o;826:27::-;;;;:::o;13895:143::-;13999:5;;:32;;;-1:-1:-1;;;;;13999:32:3;;-1:-1:-1;;;;;13999:32:3;;;;;;;;;13965:15;;13999:5;;;;;:19;;:32;;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;13999:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13999:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13999:32:3;;13895:143;-1:-1:-1;;13895:143:3:o;1798:34::-;;;-1:-1:-1;;;;;1798:34:3;;:::o;6248:739::-;6336:11;3450:23;3461:11;3450:10;:23::i;:::-;3442:72;;;;-1:-1:-1;;;;;3442:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6438:11;;6502:3;;6539:5;;6502:50;;;-1:-1:-1;;;;;6502:50:3;;6519:10;6502:50;;;;-1:-1:-1;;;;;6539:5:3;;;6502:50;;;;;;;;;;;;:3;;;;;:16;;:50;;;;;;;;;;;;;;6423:12;6502:3;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;6502:50:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6502:50:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6502:50:3;6494:83;;;;;-1:-1:-1;;;;;6494:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6635:5;;6789:20;;6760:24;;-1:-1:-1;;;;;6635:5:3;;;;:20;;6669:11;;6694:10;;6718:4;;6736:10;;;;6760:50;;;:28;:50;:::i;:::-;6824:1;6635:200;;;;;;;;;;;;;-1:-1:-1;;;;;6635:200:3;-1:-1:-1;;;;;6635:200:3;;;;;;-1:-1:-1;;;;;6635:200:3;-1:-1:-1;;;;;6635:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6635:200:3;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6635:200:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6870:21:3;;:28;;-1:-1:-1;6870:21:3;-1:-1:-1;6896:1:3;6870:28;:25;:28;:::i;:::-;6846:21;:52;6940:40;;;;;;;;-1:-1:-1;;;;;6940:40:3;;;;;;;;;;;;;3524:1;6248:739;;;;:::o;16515:247::-;16633:5;;:41;;;-1:-1:-1;;;;;16633:41:3;;-1:-1:-1;;;;;16633:41:3;;;;;;;;;16592:4;;;;16633:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;15680:285:3;15765:16;15809:6;15829:10;15825:74;;-1:-1:-1;15863:25:3;;15825:74;15915:43;15938:6;15946:5;15953:4;15915:22;:43::i;:::-;15908:50;15680:285;-1:-1:-1;;;;15680:285:3:o;1345:39::-;;;;:::o;1064:35::-;;;;:::o;11984:812::-;4114:7;;-1:-1:-1;;;;;4114:7:3;4126:10;4106:30;4098:58;;;;;-1:-1:-1;;;;;4098:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12129:5;;:27;;;-1:-1:-1;;;;;12129:27:3;;-1:-1:-1;;;;;12129:27:3;;;;;;;;;12111:15;;12159:1;;12129:5;;:18;;:27;;;;;;;;;;;;;;:5;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12129:27:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12129:27:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12129:27:3;:31;;;;;;;-1:-1:-1;12170:14:3;12197:1;12129:31;12264:5;;:42;;;-1:-1:-1;;;;;12264:42:3;;-1:-1:-1;;;;;12264:42:3;;;;;;;;;;;;;;;12187:11;;;;;-1:-1:-1;12264:5:3;;:24;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;12264:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12264:42:3;;;;12393:25;12410:7;12393:16;:25::i;:::-;12389:83;;;12434:27;12453:7;12434:18;:27::i;:::-;12607:3;;12620:5;;:33;;;-1:-1:-1;;;;;12620:33:3;;-1:-1:-1;;;;;12620:33:3;;;;;;;;;12607:3;;;;:12;;12620:5;;;;:19;;:33;;;;;;;;;;;;;;;:5;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12620:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12620:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12620:33:3;12607:55;;;;;;;;;;-1:-1:-1;;;;;12607:55:3;;;;;;;;;;;;;;;;;;;12620:33;;12607:55;;;;;;;-1:-1:-1;12607:55:3;;;;5:2:-1;;;;30:1;27;20:12;5:2;12607:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12607:55:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12607:55:3;12599:90;;;;;-1:-1:-1;;;;;12599:90:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12707:3;;12720:5;;:33;;;-1:-1:-1;;;;;12720:33:3;;-1:-1:-1;;;;;12720:33:3;;;;;;;;;12707:3;;;;:12;;12720:5;;;;:19;;:33;;;;;;;;;;;;;;;:5;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12720:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12720:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12720:33:3;12707:55;;;;;;;;;;-1:-1:-1;;;;;12707:55:3;;;;;;;;;;;;;;;;;;;12720:33;;12707:55;;;;;;;-1:-1:-1;12707:55:3;;;;5:2:-1;;;;30:1;27;20:12;5:2;12707:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12707:55:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12707:55:3;12699:90;;;;;-1:-1:-1;;;;;12699:90:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:1;;11984:812;;;:::o;18266:195::-;18330:4;18353:27;18368:11;18353:14;:27::i;:::-;:101;;;;-1:-1:-1;18429:25:3;;18384:5;;:41;;;-1:-1:-1;;;;;18384:41:3;;-1:-1:-1;;;;;18384:41:3;;;;;;;;;:5;;;;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;18384:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18384:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18384:41:3;:70;;18353:101;18346:108;18266:195;-1:-1:-1;;18266:195:3:o;1461:26::-;;;;;;:::o;1270:30::-;;;;:::o;10875:197::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;11013:24:3;:52;10875:197::o;9954:89::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;10014:5:3;;;;;;;;;-1:-1:-1;;;;;10014:5:3;-1:-1:-1;;;;;10014:20:3;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10014:22:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10014:22:3;;;;9954:89::o;1306:33::-;;;;:::o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;901:40:3:-;;;;:::o;1430:25::-;;;;;;:::o;18757:156::-;18859:47;;;;;;;;;18892:13;18859:47;;;;;;;;;18836:4;;18859:47;;18879:11;;18859:19;:47::i;16836:237::-;16943:5;;:41;;;-1:-1:-1;;;;;16943:41:3;;-1:-1:-1;;;;;16943:41:3;;;;;;;;;16902:4;;;;16943:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;16943:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16943:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16943:41:3;;-1:-1:-1;17001:19:3;;;;;:65;;-1:-1:-1;17042:24:3;;-1:-1:-1;17024:42:3;;16836:237;-1:-1:-1;;16836:237:3:o;10530:173::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;10656:18:3;:40;10530:173::o;7392:161::-;7461:11;3924:29;3941:11;3924:16;:29::i;:::-;3916:64;;;;;-1:-1:-1;;;;;3916:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3229:5;;:32;;;-1:-1:-1;;;;;3229:32:3;;-1:-1:-1;;;;;3229:32:3;;;;;;;;;7492:11;;3265:10;;3229:5;;:19;;:32;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3229:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3229:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3229:32:3;-1:-1:-1;;;;;3229:46:3;;3221:81;;;;;-1:-1:-1;;;;;3221:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:31;7534:11;7515:18;:31::i;:::-;3990:1;7392:161;;:::o;14481:148::-;14586:5;;:36;;;-1:-1:-1;;;;;14586:36:3;;-1:-1:-1;;;;;14586:36:3;;;;;;;;;14555:12;;14586:5;;;;;:23;;:36;;;;;:5;;:36;;;;;;;;:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;14586:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14586:36:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14586:36:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;14586:36:3;;;;;;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;14586:36:3;;14481:148;-1:-1:-1;;;;;;14481:148:3:o;1556:19::-;;;-1:-1:-1;;;;;1556:19:3;;:::o;814:77:35:-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;7729:1710:3:-;7769:25;;7765:199;;7912:7;:5;:7::i;:::-;-1:-1:-1;;;;;7898:21:3;:10;-1:-1:-1;;;;;7898:21:3;;7890:63;;;;;-1:-1:-1;;;;;7890:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8081:20;;8052:24;;:50;;;:28;:50;:::i;:::-;8036:12;:66;;8028:108;;;;;-1:-1:-1;;;;;8028:108:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8276:12;8260:28;;:13;:28;;;;;;8313:90;;;;;;;;;8184:12;-1:-1:-1;;8184:16:3;;8174:27;8313:90;;;;;;;;;;8298:105;;;;;;;-1:-1:-1;8485:12:3;;8457:25;:40;-1:-1:-1;8522:21:3;8507:36;;8652:11;;-1:-1:-1;8633:15:3;:30;8629:160;;8693:15;;8679:11;:29;;;8727:51;;;;;;;;;;;;;;;;;;;;;;;;;8629:160;8824:14;;8802:18;;:36;8798:181;;8871:18;;8854:14;:35;;;8908:60;;;;;;;;;;;;;;;;;;;;;;;;;8798:181;9020:20;;8992:24;;:48;8988:223;;9079:24;;9056:20;:47;;;9122:78;;;;;;;;;;;;;;;;;;;;;;;;;8988:223;9239:7;;9224:11;;-1:-1:-1;;;;;9224:11:3;;;9239:7;;9224:22;9220:150;;9272:11;;9262:7;:21;;-1:-1:-1;;;;;;9262:21:3;-1:-1:-1;;;;;9272:11:3;;;9262:21;;;;;;;9302:57;;;9328:7;;;;9302:57;;;;;;;;;;;;;;;;;;;9220:150;9410:22;;9422:9;;9410:22;;;;;7729:1710;:::o;1653:34::-;;;-1:-1:-1;;;;;1653:34:3;;:::o;997:26::-;;;;:::o;1762:30::-;;;-1:-1:-1;;;;;1762:30:3;;:::o;11224:184::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;11310:31:3;;11302:67;;;;;-1:-1:-1;;;;;11302:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;11379:11;:22;;-1:-1:-1;;;;;;11379:22:3;-1:-1:-1;;;;;11379:22:3;;;;;;;;;;11224:184::o;14191:133::-;14286:5;;:31;;;-1:-1:-1;;;;;14286:31:3;;-1:-1:-1;;;;;14286:31:3;;;;;;;;;14260:7;;14286:5;;;;;:18;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;9627:121:3;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;9707:5:3;;:34;;;-1:-1:-1;;;;;9707:34:3;;-1:-1:-1;;;;;9707:34:3;;;;;;;;;:5;;;;;:23;;:34;;;;;:5;;:34;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;9707:34:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;18533:140:3;18620:46;;;;;;;;;18653:12;18620:46;;;;;;;;;18597:4;;18620:46;;18640:11;;18620:19;:46::i;1029:29::-;;;;:::o;17252:378::-;17361:5;;:41;;;-1:-1:-1;;;;;17361:41:3;;-1:-1:-1;;;;;17361:41:3;;;;;;;;;17320:4;;;;17361:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;17361:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17361:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17361:41:3;;-1:-1:-1;17575:25:3;17588:11;17575:12;:25::i;:::-;:48;;;;-1:-1:-1;17604:19:3;;17252:378;-1:-1:-1;;17252:378:3:o;15257:265::-;15334:16;15378:6;15398:10;15394:61;;-1:-1:-1;15432:12:3;;15394:61;15471:44;15494:6;15502:5;15509;15471:22;:44::i;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;13181:550:3:-;13242:11;3662:25;3675:11;3662:12;:25::i;:::-;3654:81;;;;-1:-1:-1;;;;;3654:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13289:5;;:32;;;-1:-1:-1;;;;;13289:32:3;;-1:-1:-1;;;;;13289:32:3;;;;;;;;;13265:21;;13289:5;;;;;:19;;:32;;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;13289:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13289:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13289:32:3;13385:5;;:31;;;-1:-1:-1;;;;;13385:31:3;;-1:-1:-1;;;;;13385:31:3;;;;;;;;;13289:32;;-1:-1:-1;13368:14:3;;13385:5;;;;;:18;;:31;;;;;13289:32;;13385:31;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;13385:31:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13385:31:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13385:31:3;13475:5;;:33;;;-1:-1:-1;;;;;13475:33:3;;-1:-1:-1;;;;;13475:33:3;;;;;;;;;13385:31;;-1:-1:-1;13475:5:3;;;:20;;:33;;;;;:5;;:33;;;;;;;;:5;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;13475:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13575:3:3;;:35;;;-1:-1:-1;;;;;13575:35:3;;-1:-1:-1;;;;;13575:35:3;;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;13575:12:3;;-1:-1:-1;13575:35:3;;;;;;;;;;;;;;:3;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;13575:35:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13575:35:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13575:35:3;13567:68;;;;;-1:-1:-1;;;;;13567:68:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;13677:47;;;;;;;;-1:-1:-1;;;;;13677:47:3;;;;;;;;;;;;;3745:1;;13181:550;;:::o;451:21::-;;;;;;;;;;;;;;;-1:-1:-1;;451:21:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17831:280::-;17932:5;;:39;;;-1:-1:-1;;;;;17932:39:3;;-1:-1:-1;;;;;17932:39:3;;;;;;;;;17893:4;;;;17932:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;17932:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17932:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17932:39:3;18006:5;;:41;;;-1:-1:-1;;;;;18006:41:3;;-1:-1:-1;;;;;18006:41:3;;;;;;;;;17932:39;;-1:-1:-1;17981:22:3;;18006:5;;;;;:28;;:41;;;;;17932:39;;18006:41;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;18006:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18006:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18006:41:3;;-1:-1:-1;18064:17:3;;:40;;;;-1:-1:-1;18085:19:3;;18057:47;-1:-1:-1;;;17831:280:3:o;834:176:34:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;20042:1165:3;20152:16;20196:6;20216:10;20212:61;;-1:-1:-1;20250:12:3;;20212:61;20283:22;20322:5;20308:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;20308:20:3;-1:-1:-1;20283:45:3;-1:-1:-1;20388:9:3;20426:6;-1:-1:-1;;;;;20446:18:3;;20442:69;;20487:5;;;;;;;;;-1:-1:-1;;;;;20487:5:3;-1:-1:-1;;;;;20487:11:3;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20487:13:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20487:13:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20487:13:3;;-1:-1:-1;20442:69:3;20602:5;20598:1;:9;20591:588;;;-1:-1:-1;;;;;20627:18:3;;20623:62;;20665:5;;20623:62;20766:16;20800:17;20796:174;;;20851:33;20879:4;20851:27;:33::i;:::-;20837:47;;20796:174;;;20937:18;20950:4;20937:12;:18::i;:::-;20923:32;;20796:174;20988:11;20983:100;;21026:5;;:16;;;-1:-1:-1;;;;;21026:16:3;;-1:-1:-1;;;;;21026:16:3;;;;;;;;;:5;;;;;:10;;:16;;;;;;;;;;;;;;:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;21026:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21026:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21026:16:3;;-1:-1:-1;21060:8:3;;-1:-1:-1;21060:8:3;20983:100;21107:4;21096:5;21102:1;21096:8;;;;;;;;-1:-1:-1;;;;;21096:15:3;;;:8;;;;;;;;;;:15;;;;21132:5;;:16;;;-1:-1:-1;;;;;21132:16:3;;;;;;;;;;;:5;;;;;:10;;:16;;;;;21096:8;;21132:16;;;;;:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;21132:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21132:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21132:16:3;21167:1;21162:6;;;;;21132:16;-1:-1:-1;20591:588:3;;-1:-1:-1;20591:588:3;21273:360;21388:5;;21465:20;;21436:24;;-1:-1:-1;;;;;21388:5:3;;;;:34;;21423:11;;21436:50;;;:28;:50;:::i;:::-;21388:99;;;;;;;;;;;;;-1:-1:-1;;;;;21388:99:3;-1:-1:-1;;;;;21388:99:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21388:99:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21521:21:3;;:28;;-1:-1:-1;21521:21:3;-1:-1:-1;21547:1:3;21521:28;:25;:28;:::i;:::-;21497:21;:52;21590:36;;-1:-1:-1;;;;;21590:36:3;;;;;;;;21273:360;:::o;19119:608::-;19251:5;;:39;;;-1:-1:-1;;;;;19251:39:3;;-1:-1:-1;;;;;19251:39:3;;;;;;;;;19212:4;;;;19251:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;19251:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19251:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19251:39:3;19325:5;;:41;;;-1:-1:-1;;;;;19325:41:3;;-1:-1:-1;;;;;19325:41:3;;;;;;;;;19251:39;;-1:-1:-1;19300:22:3;;19325:5;;;;;:28;;:41;;;;;19251:39;;19325:41;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;19325:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19325:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19325:41:3;;-1:-1:-1;19376:15:3;19394:17;;;;;:55;;;19431:6;:18;;;19415:12;:34;;19394:55;19376:73;-1:-1:-1;19459:20:3;19482:19;;;:58;;;19522:6;:18;;;19505:14;:35;19482:58;19459:81;;19691:10;:29;;;;;19705:15;19691:29;19684:36;19119:608;-1:-1:-1;;;;;;;19119:608:3:o;2093:225:35:-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../RenToken/RenToken.sol\";\nimport \"../DarknodeSlasher/DarknodeSlasher.sol\";\nimport \"./DarknodeRegistryStore.sol\";\n\n/// @notice DarknodeRegistry is responsible for the registration and\n/// deregistration of Darknodes.\ncontract DarknodeRegistry is Ownable {\n using SafeMath for uint256;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice Darknode pods are shuffled after a fixed number of blocks.\n /// An Epoch stores an epoch hash used as an (insecure) RNG seed, and the\n /// blocknumber which restricts when the next epoch can be called.\n struct Epoch {\n uint256 epochhash;\n uint256 blocknumber;\n }\n\n uint256 public numDarknodes;\n uint256 public numDarknodesNextEpoch;\n uint256 public numDarknodesPreviousEpoch;\n\n /// Variables used to parameterize behavior.\n uint256 public minimumBond;\n uint256 public minimumPodSize;\n uint256 public minimumEpochInterval;\n\n /// When one of the above variables is modified, it is only updated when the\n /// next epoch is called. These variables store the values for the next epoch.\n uint256 public nextMinimumBond;\n uint256 public nextMinimumPodSize;\n uint256 public nextMinimumEpochInterval;\n\n /// The current and previous epoch\n Epoch public currentEpoch;\n Epoch public previousEpoch;\n\n /// Republic ERC20 token contract used to transfer bonds.\n RenToken public ren;\n\n /// Darknode Registry Store is the storage contract for darknodes.\n DarknodeRegistryStore public store;\n\n /// Darknode Slasher allows darknodes to vote on bond slashing.\n DarknodeSlasher public slasher;\n DarknodeSlasher public nextSlasher;\n\n /// @notice Emitted when a darknode is registered.\n /// @param _darknodeID The darknode ID that was registered.\n /// @param _bond The amount of REN that was transferred as bond.\n event LogDarknodeRegistered(address indexed _darknodeID, uint256 _bond);\n\n /// @notice Emitted when a darknode is deregistered.\n /// @param _darknodeID The darknode ID that was deregistered.\n event LogDarknodeDeregistered(address indexed _darknodeID);\n\n /// @notice Emitted when a refund has been made.\n /// @param _owner The address that was refunded.\n /// @param _amount The amount of REN that was refunded.\n event LogDarknodeOwnerRefunded(address indexed _owner, uint256 _amount);\n\n /// @notice Emitted when a new epoch has begun.\n event LogNewEpoch(uint256 indexed epochhash);\n\n /// @notice Emitted when a constructor parameter has been updated.\n event LogMinimumBondUpdated(uint256 previousMinimumBond, uint256 nextMinimumBond);\n event LogMinimumPodSizeUpdated(uint256 previousMinimumPodSize, uint256 nextMinimumPodSize);\n event LogMinimumEpochIntervalUpdated(uint256 previousMinimumEpochInterval, uint256 nextMinimumEpochInterval);\n event LogSlasherUpdated(address previousSlasher, address nextSlasher);\n\n /// @notice Restrict a function to the owner that registered the darknode.\n modifier onlyDarknodeOwner(address _darknodeID) {\n require(store.darknodeOwner(_darknodeID) == msg.sender, \"must be darknode owner\");\n _;\n }\n\n /// @notice Restrict a function to unregistered darknodes.\n modifier onlyRefunded(address _darknodeID) {\n require(isRefunded(_darknodeID), \"must be refunded or never registered\");\n _;\n }\n\n /// @notice Restrict a function to refundable darknodes.\n modifier onlyRefundable(address _darknodeID) {\n require(isRefundable(_darknodeID), \"must be deregistered for at least one epoch\");\n _;\n }\n\n /// @notice Restrict a function to registered nodes without a pending\n /// deregistration.\n modifier onlyDeregisterable(address _darknodeID) {\n require(isDeregisterable(_darknodeID), \"must be deregisterable\");\n _;\n }\n\n /// @notice Restrict a function to the Slasher contract.\n modifier onlySlasher() {\n require(address(slasher) == msg.sender, \"must be slasher\");\n _;\n }\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _renAddress The address of the RenToken contract.\n /// @param _storeAddress The address of the DarknodeRegistryStore contract.\n /// @param _minimumBond The minimum bond amount that can be submitted by a\n /// Darknode.\n /// @param _minimumPodSize The minimum size of a Darknode pod.\n /// @param _minimumEpochInterval The minimum number of blocks between\n /// epochs.\n constructor(\n string memory _VERSION,\n RenToken _renAddress,\n DarknodeRegistryStore _storeAddress,\n uint256 _minimumBond,\n uint256 _minimumPodSize,\n uint256 _minimumEpochInterval\n ) public {\n VERSION = _VERSION;\n\n store = _storeAddress;\n ren = _renAddress;\n\n minimumBond = _minimumBond;\n nextMinimumBond = minimumBond;\n\n minimumPodSize = _minimumPodSize;\n nextMinimumPodSize = minimumPodSize;\n\n minimumEpochInterval = _minimumEpochInterval;\n nextMinimumEpochInterval = minimumEpochInterval;\n\n currentEpoch = Epoch({\n epochhash: uint256(blockhash(block.number - 1)),\n blocknumber: block.number\n });\n numDarknodes = 0;\n numDarknodesNextEpoch = 0;\n numDarknodesPreviousEpoch = 0;\n }\n\n /// @notice Register a darknode and transfer the bond to this contract.\n /// Before registering, the bond transfer must be approved in the REN\n /// contract. The caller must provide a public encryption key for the\n /// darknode. The darknode will remain pending registration until the next\n /// epoch. Only after this period can the darknode be deregistered. The\n /// caller of this method will be stored as the owner of the darknode.\n ///\n /// @param _darknodeID The darknode ID that will be registered.\n /// @param _publicKey The public key of the darknode. It is stored to allow\n /// other darknodes and traders to encrypt messages to the trader.\n function register(address _darknodeID, bytes calldata _publicKey) external onlyRefunded(_darknodeID) {\n // Use the current minimum bond as the darknode's bond.\n uint256 bond = minimumBond;\n\n // Transfer bond to store\n require(ren.transferFrom(msg.sender, address(store), bond), \"bond transfer failed\");\n\n // Flag this darknode for registration\n store.appendDarknode(\n _darknodeID,\n msg.sender,\n bond,\n _publicKey,\n currentEpoch.blocknumber.add(minimumEpochInterval),\n 0\n );\n\n numDarknodesNextEpoch = numDarknodesNextEpoch.add(1);\n\n // Emit an event.\n emit LogDarknodeRegistered(_darknodeID, bond);\n }\n\n /// @notice Deregister a darknode. The darknode will not be deregistered\n /// until the end of the epoch. After another epoch, the bond can be\n /// refunded by calling the refund method.\n /// @param _darknodeID The darknode ID that will be deregistered. The caller\n /// of this method store.darknodeRegisteredAt(_darknodeID) must be\n // the owner of this darknode.\n function deregister(address _darknodeID) external onlyDeregisterable(_darknodeID) onlyDarknodeOwner(_darknodeID) {\n deregisterDarknode(_darknodeID);\n }\n\n /// @notice Progress the epoch if it is possible to do so. This captures\n /// the current timestamp and current blockhash and overrides the current\n /// epoch.\n function epoch() external {\n if (previousEpoch.blocknumber == 0) {\n // The first epoch must be called by the owner of the contract\n require(msg.sender == owner(), \"not authorized (first epochs)\");\n }\n\n // Require that the epoch interval has passed\n require(block.number >= currentEpoch.blocknumber.add(minimumEpochInterval), \"epoch interval has not passed\");\n uint256 epochhash = uint256(blockhash(block.number - 1));\n\n // Update the epoch hash and timestamp\n previousEpoch = currentEpoch;\n currentEpoch = Epoch({\n epochhash: epochhash,\n blocknumber: block.number\n });\n\n // Update the registry information\n numDarknodesPreviousEpoch = numDarknodes;\n numDarknodes = numDarknodesNextEpoch;\n\n // If any update functions have been called, update the values now\n if (nextMinimumBond != minimumBond) {\n minimumBond = nextMinimumBond;\n emit LogMinimumBondUpdated(minimumBond, nextMinimumBond);\n }\n if (nextMinimumPodSize != minimumPodSize) {\n minimumPodSize = nextMinimumPodSize;\n emit LogMinimumPodSizeUpdated(minimumPodSize, nextMinimumPodSize);\n }\n if (nextMinimumEpochInterval != minimumEpochInterval) {\n minimumEpochInterval = nextMinimumEpochInterval;\n emit LogMinimumEpochIntervalUpdated(minimumEpochInterval, nextMinimumEpochInterval);\n }\n if (nextSlasher != slasher) {\n slasher = nextSlasher;\n emit LogSlasherUpdated(address(slasher), address(nextSlasher));\n }\n\n // Emit an event\n emit LogNewEpoch(epochhash);\n }\n\n /// @notice Allows the contract owner to initiate an ownership transfer of\n /// the DarknodeRegistryStore. \n /// @param _newOwner The address to transfer the ownership to.\n function transferStoreOwnership(address _newOwner) external onlyOwner {\n store.transferOwnership(_newOwner);\n }\n\n /// @notice Claims ownership of the store passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called when\n /// transferring from another Darknode Registry.\n function claimStoreOwnership() external onlyOwner {\n store.claimOwnership();\n }\n\n /// @notice Allows the contract owner to update the minimum bond.\n /// @param _nextMinimumBond The minimum bond amount that can be submitted by\n /// a darknode.\n function updateMinimumBond(uint256 _nextMinimumBond) external onlyOwner {\n // Will be updated next epoch\n nextMinimumBond = _nextMinimumBond;\n }\n\n /// @notice Allows the contract owner to update the minimum pod size.\n /// @param _nextMinimumPodSize The minimum size of a pod.\n function updateMinimumPodSize(uint256 _nextMinimumPodSize) external onlyOwner {\n // Will be updated next epoch\n nextMinimumPodSize = _nextMinimumPodSize;\n }\n\n /// @notice Allows the contract owner to update the minimum epoch interval.\n /// @param _nextMinimumEpochInterval The minimum number of blocks between epochs.\n function updateMinimumEpochInterval(uint256 _nextMinimumEpochInterval) external onlyOwner {\n // Will be updated next epoch\n nextMinimumEpochInterval = _nextMinimumEpochInterval;\n }\n\n /// @notice Allow the contract owner to update the DarknodeSlasher contract\n /// address.\n /// @param _slasher The new slasher address.\n function updateSlasher(DarknodeSlasher _slasher) external onlyOwner {\n require(address(_slasher) != address(0), \"invalid slasher address\");\n nextSlasher = _slasher;\n }\n\n /// @notice Allow the DarknodeSlasher contract to slash half of a darknode's\n /// bond and deregister it. The bond is distributed as follows:\n /// 1/2 is kept by the guilty prover\n /// 1/8 is rewarded to the first challenger\n /// 1/8 is rewarded to the second challenger\n /// 1/4 becomes unassigned\n /// @param _prover The guilty prover whose bond is being slashed\n /// @param _challenger1 The first of the two darknodes who submitted the challenge\n /// @param _challenger2 The second of the two darknodes who submitted the challenge\n function slash(address _prover, address _challenger1, address _challenger2)\n external\n onlySlasher\n {\n uint256 penalty = store.darknodeBond(_prover) / 2;\n uint256 reward = penalty / 4;\n\n // Slash the bond of the failed prover in half\n store.updateDarknodeBond(_prover, penalty);\n\n // If the darknode has not been deregistered then deregister it\n if (isDeregisterable(_prover)) {\n deregisterDarknode(_prover);\n }\n\n // Reward the challengers with less than the penalty so that it is not\n // worth challenging yourself\n require(ren.transfer(store.darknodeOwner(_challenger1), reward), \"reward transfer failed\");\n require(ren.transfer(store.darknodeOwner(_challenger2), reward), \"reward transfer failed\");\n }\n\n /// @notice Refund the bond of a deregistered darknode. This will make the\n /// darknode available for registration again. Anyone can call this function\n /// but the bond will always be refunded to the darknode owner.\n ///\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n /// of this method must be the owner of this darknode.\n function refund(address _darknodeID) external onlyRefundable(_darknodeID) {\n address darknodeOwner = store.darknodeOwner(_darknodeID);\n\n // Remember the bond amount\n uint256 amount = store.darknodeBond(_darknodeID);\n\n // Erase the darknode from the registry\n store.removeDarknode(_darknodeID);\n\n // Refund the owner by transferring REN\n require(ren.transfer(darknodeOwner, amount), \"bond transfer failed\");\n\n // Emit an event.\n emit LogDarknodeOwnerRefunded(darknodeOwner, amount);\n }\n\n /// @notice Retrieves the address of the account that registered a darknode.\n /// @param _darknodeID The ID of the darknode to retrieve the owner for.\n function getDarknodeOwner(address _darknodeID) external view returns (address payable) {\n return store.darknodeOwner(_darknodeID);\n }\n\n /// @notice Retrieves the bond amount of a darknode in 10^-18 REN.\n /// @param _darknodeID The ID of the darknode to retrieve the bond for.\n function getDarknodeBond(address _darknodeID) external view returns (uint256) {\n return store.darknodeBond(_darknodeID);\n }\n\n /// @notice Retrieves the encryption public key of the darknode.\n /// @param _darknodeID The ID of the darknode to retrieve the public key for.\n function getDarknodePublicKey(address _darknodeID) external view returns (bytes memory) {\n return store.darknodePublicKey(_darknodeID);\n }\n\n /// @notice Retrieves a list of darknodes which are registered for the\n /// current epoch.\n /// @param _start A darknode ID used as an offset for the list. If _start is\n /// 0x0, the first dark node will be used. _start won't be\n /// included it is not registered for the epoch.\n /// @param _count The number of darknodes to retrieve starting from _start.\n /// If _count is 0, all of the darknodes from _start are\n /// retrieved. If _count is more than the remaining number of\n /// registered darknodes, the rest of the list will contain\n /// 0x0s.\n function getDarknodes(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodes;\n }\n return getDarknodesFromEpochs(_start, count, false);\n }\n\n /// @notice Retrieves a list of darknodes which were registered for the\n /// previous epoch. See `getDarknodes` for the parameter documentation.\n function getPreviousDarknodes(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodesPreviousEpoch;\n }\n return getDarknodesFromEpochs(_start, count, true);\n }\n\n /// @notice Returns whether a darknode is scheduled to become registered\n /// at next epoch.\n /// @param _darknodeID The ID of the darknode to return\n function isPendingRegistration(address _darknodeID) external view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n return registeredAt != 0 && registeredAt > currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the pending deregistered state. In\n /// this state a darknode is still considered registered.\n function isPendingDeregistration(address _darknodeID) external view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return deregisteredAt != 0 && deregisteredAt > currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the deregistered state.\n function isDeregistered(address _darknodeID) public view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return deregisteredAt != 0 && deregisteredAt <= currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode can be deregistered. This is true if the\n /// darknodes is in the registered state and has not attempted to\n /// deregister yet.\n function isDeregisterable(address _darknodeID) public view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n // The Darknode is currently in the registered state and has not been\n // transitioned to the pending deregistration, or deregistered, state\n return isRegistered(_darknodeID) && deregisteredAt == 0;\n }\n\n /// @notice Returns if a darknode is in the refunded state. This is true\n /// for darknodes that have never been registered, or darknodes that have\n /// been deregistered and refunded.\n function isRefunded(address _darknodeID) public view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return registeredAt == 0 && deregisteredAt == 0;\n }\n\n /// @notice Returns if a darknode is refundable. This is true for darknodes\n /// that have been in the deregistered state for one full epoch.\n function isRefundable(address _darknodeID) public view returns (bool) {\n return isDeregistered(_darknodeID) && store.darknodeDeregisteredAt(_darknodeID) <= previousEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the registered state.\n function isRegistered(address _darknodeID) public view returns (bool) {\n return isRegisteredInEpoch(_darknodeID, currentEpoch);\n }\n\n /// @notice Returns if a darknode was in the registered state last epoch.\n function isRegisteredInPreviousEpoch(address _darknodeID) public view returns (bool) {\n return isRegisteredInEpoch(_darknodeID, previousEpoch);\n }\n\n /// @notice Returns if a darknode was in the registered state for a given\n /// epoch.\n /// @param _darknodeID The ID of the darknode\n /// @param _epoch One of currentEpoch, previousEpoch\n function isRegisteredInEpoch(address _darknodeID, Epoch memory _epoch) private view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n bool registered = registeredAt != 0 && registeredAt <= _epoch.blocknumber;\n bool notDeregistered = deregisteredAt == 0 || deregisteredAt > _epoch.blocknumber;\n // The Darknode has been registered and has not yet been deregistered,\n // although it might be pending deregistration\n return registered && notDeregistered;\n }\n\n /// @notice Returns a list of darknodes registered for either the current\n /// or the previous epoch. See `getDarknodes` for documentation on the\n /// parameters `_start` and `_count`.\n /// @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n /// the current epoch.\n function getDarknodesFromEpochs(address _start, uint256 _count, bool _usePreviousEpoch) private view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodes;\n }\n\n address[] memory nodes = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = store.begin();\n }\n\n // Iterate until all registered Darknodes have been collected\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n // Only include Darknodes that are currently registered\n bool includeNext;\n if (_usePreviousEpoch) {\n includeNext = isRegisteredInPreviousEpoch(next);\n } else {\n includeNext = isRegistered(next);\n }\n if (!includeNext) {\n next = store.next(next);\n continue;\n }\n nodes[n] = next;\n next = store.next(next);\n n += 1;\n }\n return nodes;\n }\n\n /// Private function called by `deregister` and `slash`\n function deregisterDarknode(address _darknodeID) private {\n // Flag the darknode for deregistration\n store.updateDarknodeDeregisteredAt(_darknodeID, currentEpoch.blocknumber.add(minimumEpochInterval));\n numDarknodesNextEpoch = numDarknodesNextEpoch.sub(1);\n\n // Emit an event\n emit LogDarknodeDeregistered(_darknodeID);\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "exportedSymbols": { - "DarknodeRegistry": [ - 2390 - ] - }, - "id": 2391, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1289, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1290, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7653, - "src": "25:63:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1291, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7542, - "src": "89:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 1292, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2808, - "src": "150:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "file": "../DarknodeSlasher/DarknodeSlasher.sol", - "id": 1293, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2722, - "src": "185:48:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "file": "./DarknodeRegistryStore.sol", - "id": 1294, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2683, - "src": "234:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1295, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 1296, - "nodeType": "InheritanceSpecifier", - "src": "404:7:3" - } - ], - "contractDependencies": [ - 7652 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeRegistry is responsible for the registration and\n deregistration of Darknodes.", - "fullyImplemented": true, - "id": 2390, - "linearizedBaseContracts": [ - 2390, - 7652 - ], - "name": "DarknodeRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1299, - "libraryName": { - "contractScope": null, - "id": 1297, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "424:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:3", - "typeName": { - "id": 1298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1301, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "451:21:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1300, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistry.Epoch", - "id": 1306, - "members": [ - { - "constant": false, - "id": 1303, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "767:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "767:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1305, - "name": "blocknumber", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "794:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Epoch", - "nodeType": "StructDefinition", - "scope": 2390, - "src": "744:76:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1308, - "name": "numDarknodes", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "826:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1310, - "name": "numDarknodesNextEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "859:36:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "859:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1312, - "name": "numDarknodesPreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "901:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1314, - "name": "minimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "997:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1316, - "name": "minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1029:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1318, - "name": "minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1064:35:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1320, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1270:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1322, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1306:33:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1324, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1345:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1326, - "name": "currentEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1430:25:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1325, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1430:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1328, - "name": "previousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1461:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1327, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1461:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1330, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1556:19:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1329, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "1556:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1332, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1653:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1331, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "1653:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1334, - "name": "slasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1762:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1333, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1336, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1798:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1335, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is registered.\n @param _darknodeID The darknode ID that was registered.\n @param _bond The amount of REN that was transferred as bond.", - "id": 1342, - "name": "LogDarknodeRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2055:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": false, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2084:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2054:44:3" - }, - "src": "2027:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is deregistered.\n @param _darknodeID The darknode ID that was deregistered.", - "id": 1346, - "name": "LogDarknodeDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2258:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2258:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:29:3" - }, - "src": "2228:59:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a refund has been made.\n @param _owner The address that was refunded.\n @param _amount The amount of REN that was refunded.", - "id": 1352, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1348, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2490:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2514:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2489:41:3" - }, - "src": "2459:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new epoch has begun.", - "id": 1356, - "name": "LogNewEpoch", - "nodeType": "EventDefinition", - "parameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1354, - "indexed": true, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "2607:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2607:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2606:27:3" - }, - "src": "2589:45:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a constructor parameter has been updated.", - "id": 1362, - "name": "LogMinimumBondUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "indexed": false, - "name": "previousMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2739:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2739:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "indexed": false, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2768:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2768:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2738:54:3" - }, - "src": "2711:82:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1368, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "indexed": false, - "name": "previousMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2829:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2829:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1366, - "indexed": false, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2861:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2828:60:3" - }, - "src": "2798:91:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1374, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1370, - "indexed": false, - "name": "previousMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2931:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "indexed": false, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2969:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2930:72:3" - }, - "src": "2894:109:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1380, - "name": "LogSlasherUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1376, - "indexed": false, - "name": "previousSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3032:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1378, - "indexed": false, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3057:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:46:3" - }, - "src": "3008:70:3" - }, - { - "body": { - "id": 1396, - "nodeType": "Block", - "src": "3211:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1387, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1382, - "src": "3249:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1385, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "3229:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "3229:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1389, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "3265:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3229:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206461726b6e6f6465206f776e6572", - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3277:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - }, - "value": "must be darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - } - ], - "id": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3221:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3221:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "3221:81:3" - }, - { - "id": 1395, - "nodeType": "PlaceholderStatement", - "src": "3312:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the owner that registered the darknode.", - "id": 1397, - "name": "onlyDarknodeOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1397, - "src": "3190:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3190:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3189:21:3" - }, - "src": "3163:157:3", - "visibility": "internal" - }, - { - "body": { - "id": 1409, - "nodeType": "Block", - "src": "3432:100:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1403, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1402, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "3450:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3450:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520726566756e646564206f72206e657665722072656769737465726564", - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - }, - "value": "must be refunded or never registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - } - ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3442:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3442:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "ExpressionStatement", - "src": "3442:72:3" - }, - { - "id": 1408, - "nodeType": "PlaceholderStatement", - "src": "3524:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to unregistered darknodes.", - "id": 1410, - "name": "onlyRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1410, - "src": "3411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3410:21:3" - }, - "src": "3389:143:3", - "visibility": "internal" - }, - { - "body": { - "id": 1422, - "nodeType": "Block", - "src": "3644:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1416, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1415, - "name": "isRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "3662:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f6368", - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3689:45:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - }, - "value": "must be deregistered for at least one epoch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - } - ], - "id": 1414, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3654:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "3654:81:3" - }, - { - "id": 1421, - "nodeType": "PlaceholderStatement", - "src": "3745:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to refundable darknodes.", - "id": 1423, - "name": "onlyRefundable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1412, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1423, - "src": "3623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3623:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:21:3" - }, - "src": "3599:154:3", - "visibility": "internal" - }, - { - "body": { - "id": 1435, - "nodeType": "Block", - "src": "3906:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1428, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "3924:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3924:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206465726567697374657261626c65", - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - }, - "value": "must be deregisterable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - } - ], - "id": 1427, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3916:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1433, - "nodeType": "ExpressionStatement", - "src": "3916:64:3" - }, - { - "id": 1434, - "nodeType": "PlaceholderStatement", - "src": "3990:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to registered nodes without a pending\n deregistration.", - "id": 1436, - "name": "onlyDeregisterable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1436, - "src": "3885:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3885:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3884:21:3" - }, - "src": "3857:141:3", - "visibility": "internal" - }, - { - "body": { - "id": 1449, - "nodeType": "Block", - "src": "4088:86:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "4114:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4106:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4106:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1442, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "4126:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4126:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4106:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520736c6173686572", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4138:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - }, - "value": "must be slasher" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - } - ], - "id": 1438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4098:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4098:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "4098:58:3" - }, - { - "id": 1448, - "nodeType": "PlaceholderStatement", - "src": "4166:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the Slasher contract.", - "id": 1450, - "name": "onlySlasher", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "4085:2:3" - }, - "src": "4065:109:3", - "visibility": "internal" - }, - { - "body": { - "id": 1528, - "nodeType": "Block", - "src": "4941:613:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1465, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "4951:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1466, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "4961:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4951:18:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1468, - "nodeType": "ExpressionStatement", - "src": "4951:18:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "4980:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1470, - "name": "_storeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4988:13:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "src": "4980:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "4980:21:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1473, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5011:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1474, - "name": "_renAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1454, - "src": "5017:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "5011:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "5011:17:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "_minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "5053:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5039:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1480, - "nodeType": "ExpressionStatement", - "src": "5039:26:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "5075:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1482, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5093:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "5075:29:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5115:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1486, - "name": "_minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "5132:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1488, - "nodeType": "ExpressionStatement", - "src": "5115:32:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "5157:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1490, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5178:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5157:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1492, - "nodeType": "ExpressionStatement", - "src": "5157:35:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5203:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1494, - "name": "_minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "5226:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5203:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1496, - "nodeType": "ExpressionStatement", - "src": "5203:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "5257:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1498, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5284:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5257:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "5257:47:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "5315:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "5379:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5379:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1504, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8334, - "src": "5369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "5424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5424:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1502, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "5330:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "5330:117:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "5315:132:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "5315:132:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "5457:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5472:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5457:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "5457:16:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1520, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5483:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5483:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "5483:25:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1524, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5518:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5518:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1527, - "nodeType": "ExpressionStatement", - "src": "5518:29:3" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _renAddress The address of the RenToken contract.\n @param _storeAddress The address of the DarknodeRegistryStore contract.\n @param _minimumBond The minimum bond amount that can be submitted by a\n Darknode.\n @param _minimumPodSize The minimum size of a Darknode pod.\n @param _minimumEpochInterval The minimum number of blocks between\n epochs.", - "id": 1529, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1452, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4728:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1451, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4728:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "name": "_renAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4760:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1453, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "4760:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "name": "_storeAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4790:35:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1455, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "4790:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_minimumBond", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4835:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4835:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "name": "_minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4865:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4898:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4898:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4718:215:3" - }, - "returnParameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "4941:0:3" - }, - "scope": 2390, - "src": "4707:847:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1584, - "nodeType": "Block", - "src": "6349:638:3", - "statements": [ - { - "assignments": [ - 1540 - ], - "declarations": [ - { - "constant": false, - "id": 1540, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 1584, - "src": "6423:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6423:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1542, - "initialValue": { - "argumentTypes": null, - "id": 1541, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "6438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6423:26:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1546, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "6519:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6519:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6539:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6531:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1551, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6547:4:3", - "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, - "id": 1544, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6502:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 8185, - "src": "6502:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6502:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1543, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "6494:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6494:83:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1555, - "nodeType": "ExpressionStatement", - "src": "6494:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6669:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1560, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "6694:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6694:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1562, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6718:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1563, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "6736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1567, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "6789:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "6760:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "6760:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "6760:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6760:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6824:1:3", - "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_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1556, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6635:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "appendDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2479, - "src": "6635:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address payable,uint256,bytes memory,uint256,uint256) external" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:200:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "6635:200:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6846:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:1:3", - "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": 1573, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "6870:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6870:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6846:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "6846:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1580, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6962:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1581, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1579, - "name": "LogDarknodeRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "6940:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1583, - "nodeType": "EmitStatement", - "src": "6935:45:3" - } - ] - }, - "documentation": "@notice Register a darknode and transfer the bond to this contract.\n Before registering, the bond transfer must be approved in the REN\n contract. The caller must provide a public encryption key for the\n darknode. The darknode will remain pending registration until the next\n epoch. Only after this period can the darknode be deregistered. The\n caller of this method will be stored as the owner of the darknode.\n\n /// @param _darknodeID The darknode ID that will be registered.\n @param _publicKey The public key of the darknode. It is stored to allow\n other darknodes and traders to encrypt messages to the trader.", - "id": 1585, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1536, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6336:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1537, - "modifierName": { - "argumentTypes": null, - "id": 1535, - "name": "onlyRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "6323:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6323:25:3" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6266:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6266:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6287:25:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6287:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6265:48:3" - }, - "returnParameters": { - "id": 1538, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:0:3" - }, - "scope": 2390, - "src": "6248:739:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1600, - "nodeType": "Block", - "src": "7505:48:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1597, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7534:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1596, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "7515:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1599, - "nodeType": "ExpressionStatement", - "src": "7515:31:3" - } - ] - }, - "documentation": "@notice Deregister a darknode. The darknode will not be deregistered\n until the end of the epoch. After another epoch, the bond can be\n refunded by calling the refund method.\n @param _darknodeID The darknode ID that will be deregistered. The caller\n of this method store.darknodeRegisteredAt(_darknodeID) must be", - "id": 1601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1590, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1591, - "modifierName": { - "argumentTypes": null, - "id": 1589, - "name": "onlyDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "7442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7442:31:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1593, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7492:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1594, - "modifierName": { - "argumentTypes": null, - "id": 1592, - "name": "onlyDarknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "7474:17:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7474:30:3" - } - ], - "name": "deregister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1587, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "7412:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7412:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7411:21:3" - }, - "returnParameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:3" - }, - "scope": 2390, - "src": "7392:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1726, - "nodeType": "Block", - "src": "7755:1684:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "7769:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "7769:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7798:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7769:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1618, - "nodeType": "IfStatement", - "src": "7765:199:3", - "trueBody": { - "id": 1617, - "nodeType": "Block", - "src": "7801:163:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "7898:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7898:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1611, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7575, - "src": "7912:5:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7912:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7898:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420617574686f72697a6564202866697273742065706f63687329", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - }, - "value": "not authorized (first epochs)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - } - ], - "id": 1608, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "7890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7890:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1616, - "nodeType": "ExpressionStatement", - "src": "7890:63:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8036:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8036:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1625, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "8081:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1622, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8052:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "8052:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "8052:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8052:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8036:66:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "65706f636820696e74657276616c20686173206e6f7420706173736564", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8104:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - }, - "value": "epoch interval has not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - } - ], - "id": 1619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "8028:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8028:108:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1630, - "nodeType": "ExpressionStatement", - "src": "8028:108:3" - }, - { - "assignments": [ - 1632 - ], - "declarations": [ - { - "constant": false, - "id": 1632, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "8146:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8146:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8184:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8184:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8199:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1634, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8334, - "src": "8174:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8174:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8166:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8146:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1642, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "8260:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8276:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "src": "8260:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "8260:28:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1646, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8298:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1648, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "8344:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8380:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1647, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "8313:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "8313:90:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "8298:105:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1653, - "nodeType": "ExpressionStatement", - "src": "8298:105:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "8457:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1655, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8485:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8457:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "8457:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8507:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1659, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "8522:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8507:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1661, - "nodeType": "ExpressionStatement", - "src": "8507:36:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1662, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8633:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1663, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8652:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1675, - "nodeType": "IfStatement", - "src": "8629:160:3", - "trueBody": { - "id": 1674, - "nodeType": "Block", - "src": "8665:124:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1665, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8679:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1666, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8693:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8679:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1668, - "nodeType": "ExpressionStatement", - "src": "8679:29:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1670, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8749:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1671, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1669, - "name": "LogMinimumBondUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1362, - "src": "8727:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8727:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "EmitStatement", - "src": "8722:56:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1676, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8802:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1677, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8824:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8802:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1689, - "nodeType": "IfStatement", - "src": "8798:181:3", - "trueBody": { - "id": 1688, - "nodeType": "Block", - "src": "8840:139:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1679, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8854:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1680, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8871:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8854:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1682, - "nodeType": "ExpressionStatement", - "src": "8854:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8933:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1685, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1683, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "8908:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8908:60:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1687, - "nodeType": "EmitStatement", - "src": "8903:65:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1690, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "8992:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1691, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9020:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8992:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1703, - "nodeType": "IfStatement", - "src": "8988:223:3", - "trueBody": { - "id": 1702, - "nodeType": "Block", - "src": "9042:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1693, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9056:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1694, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9079:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9056:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1696, - "nodeType": "ExpressionStatement", - "src": "9056:47:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9153:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1699, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1697, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "9122:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9122:78:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "EmitStatement", - "src": "9117:83:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1704, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9224:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1705, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9239:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9224:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1721, - "nodeType": "IfStatement", - "src": "9220:150:3", - "trueBody": { - "id": 1720, - "nodeType": "Block", - "src": "9248:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1707, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1708, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9262:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1710, - "nodeType": "ExpressionStatement", - "src": "9262:21:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9328:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9320:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9320:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9346:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9338:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9338:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1711, - "name": "LogSlasherUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "9302:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9302:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1719, - "nodeType": "EmitStatement", - "src": "9297:62:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1723, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "9422:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1722, - "name": "LogNewEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "9410:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9410:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "EmitStatement", - "src": "9405:27:3" - } - ] - }, - "documentation": "@notice Progress the epoch if it is possible to do so. This captures\n the current timestamp and current blockhash and overrides the current\n epoch.", - "id": 1727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "epoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7743:2:3" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "7755:0:3" - }, - "scope": 2390, - "src": "7729:1710:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1740, - "nodeType": "Block", - "src": "9697:51:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1737, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "9731:9:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1734, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "9707:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4441, - "src": "9707:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9707:34:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "9707:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodeRegistryStore. \n @param _newOwner The address to transfer the ownership to.", - "id": 1741, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1732, - "modifierName": { - "argumentTypes": null, - "id": 1731, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "9687:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9687:9:3" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1729, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "9659:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:19:3" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:3" - }, - "scope": 2390, - "src": "9627:121:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1751, - "nodeType": "Block", - "src": "10004:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "10014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4462, - "src": "10014:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1750, - "nodeType": "ExpressionStatement", - "src": "10014:22:3" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another Darknode Registry.", - "id": 1752, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1744, - "modifierName": { - "argumentTypes": null, - "id": 1743, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "9994:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9994:9:3" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [], - "src": "9982:2:3" - }, - "returnParameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "10004:0:3" - }, - "scope": 2390, - "src": "9954:89:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1763, - "nodeType": "Block", - "src": "10299:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1759, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10347:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1760, - "name": "_nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "10365:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10347:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "10347:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum bond.\n @param _nextMinimumBond The minimum bond amount that can be submitted by\n a darknode.", - "id": 1764, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1757, - "modifierName": { - "argumentTypes": null, - "id": 1756, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "10289:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10289:9:3" - } - ], - "name": "updateMinimumBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1754, - "name": "_nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "10254:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:26:3" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [], - "src": "10299:0:3" - }, - "scope": 2390, - "src": "10227:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "10608:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1771, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "10656:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1772, - "name": "_nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "10677:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10656:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1774, - "nodeType": "ExpressionStatement", - "src": "10656:40:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum pod size.\n @param _nextMinimumPodSize The minimum size of a pod.", - "id": 1776, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1769, - "modifierName": { - "argumentTypes": null, - "id": 1768, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "10598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10598:9:3" - } - ], - "name": "updateMinimumPodSize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "name": "_nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "10560:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1765, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10559:29:3" - }, - "returnParameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [], - "src": "10608:0:3" - }, - "scope": 2390, - "src": "10530:173:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1787, - "nodeType": "Block", - "src": "10965:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1783, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "11013:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1784, - "name": "_nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "11040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11013:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "11013:52:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum epoch interval.\n @param _nextMinimumEpochInterval The minimum number of blocks between epochs.", - "id": 1788, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1781, - "modifierName": { - "argumentTypes": null, - "id": 1780, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "10955:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10955:9:3" - } - ], - "name": "updateMinimumEpochInterval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "10911:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10910:35:3" - }, - "returnParameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [], - "src": "10965:0:3" - }, - "scope": 2390, - "src": "10875:197:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1810, - "nodeType": "Block", - "src": "11292:116:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1797, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11318:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11310:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11310:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11331:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11310:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420736c61736865722061646472657373", - "id": 1803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11343:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - }, - "value": "invalid slasher address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - } - ], - "id": 1795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "11302:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1805, - "nodeType": "ExpressionStatement", - "src": "11302:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1806, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "11379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1807, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11393:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "11379:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1809, - "nodeType": "ExpressionStatement", - "src": "11379:22:3" - } - ] - }, - "documentation": "@notice Allow the contract owner to update the DarknodeSlasher contract\n address.\n @param _slasher The new slasher address.", - "id": 1811, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1793, - "modifierName": { - "argumentTypes": null, - "id": 1792, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "11282:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11282:9:3" - } - ], - "name": "updateSlasher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "name": "_slasher", - "nodeType": "VariableDeclaration", - "scope": 1811, - "src": "11247:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1789, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "11247:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11246:26:3" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [], - "src": "11292:0:3" - }, - "scope": 2390, - "src": "11224:184:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1877, - "nodeType": "Block", - "src": "12101:695:3", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "penalty", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12111:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12111:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1830, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12129:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "12129:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12129:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12129:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12111:49:3" - }, - { - "assignments": [ - 1832 - ], - "declarations": [ - { - "constant": false, - "id": 1832, - "name": "reward", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12170:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1833, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12187:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12197:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12187:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12170:28:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1840, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12289:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1841, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1837, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12264:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2589, - "src": "12264:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12264:42:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12264:42:3" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12410:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1844, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "12393:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12393:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1852, - "nodeType": "IfStatement", - "src": "12389:83:3", - "trueBody": { - "id": 1851, - "nodeType": "Block", - "src": "12420:52:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1848, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1847, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "12434:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12434:27:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1850, - "nodeType": "ExpressionStatement", - "src": "12434:27:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "12640:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1856, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12620:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12620:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12655:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12607:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "12607:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12607:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12664:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12599:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12599:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1864, - "nodeType": "ExpressionStatement", - "src": "12599:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1870, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "12740:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12720:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12720:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12720:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1872, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12755:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1866, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12707:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "12707:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12707:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1865, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12699:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1876, - "nodeType": "ExpressionStatement", - "src": "12699:90:3" - } - ] - }, - "documentation": "@notice Allow the DarknodeSlasher contract to slash half of a darknode's\n bond and deregister it. The bond is distributed as follows:\n 1/2 is kept by the guilty prover\n 1/8 is rewarded to the first challenger\n 1/8 is rewarded to the second challenger\n 1/4 becomes unassigned\n @param _prover The guilty prover whose bond is being slashed\n @param _challenger1 The first of the two darknodes who submitted the challenge\n @param _challenger2 The second of the two darknodes who submitted the challenge", - "id": 1878, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1820, - "modifierName": { - "argumentTypes": null, - "id": 1819, - "name": "onlySlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "12085:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12085:11:3" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1813, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "11999:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1815, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12016:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12016:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1817, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12038:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12038:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:61:3" - }, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "12101:0:3" - }, - "scope": 2390, - "src": "11984:812:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "13255:476:3", - "statements": [ - { - "assignments": [ - 1887 - ], - "declarations": [ - { - "constant": false, - "id": 1887, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13265:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13265:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1892, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13309:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1888, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13289:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13289:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13289:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13265:56:3" - }, - { - "assignments": [ - 1894 - ], - "declarations": [ - { - "constant": false, - "id": 1894, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13368:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1893, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1897, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13404:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13385:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "13385:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13385:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13368:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1903, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1900, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13475:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2545, - "src": "13475:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13475:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1905, - "nodeType": "ExpressionStatement", - "src": "13475:33:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1909, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13588:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1910, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1907, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "13575:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "13575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13575:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13612:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1906, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "13567:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13567:68:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1914, - "nodeType": "ExpressionStatement", - "src": "13567:68:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1916, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13702:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13717:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1915, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "13677:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13677:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "EmitStatement", - "src": "13672:52:3" - } - ] - }, - "documentation": "@notice Refund the bond of a deregistered darknode. This will make the\n darknode available for registration again. Anyone can call this function\n but the bond will always be refunded to the darknode owner.\n\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n of this method must be the owner of this darknode.", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1883, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13242:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1884, - "modifierName": { - "argumentTypes": null, - "id": 1882, - "name": "onlyRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "13227:14:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13227:27:3" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1880, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "13197:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13197:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13196:21:3" - }, - "returnParameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [], - "src": "13255:0:3" - }, - "scope": 2390, - "src": "13181:550:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "13982:56:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1930, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1923, - "src": "14019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1928, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13999:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13999:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13999:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 1927, - "id": 1932, - "nodeType": "Return", - "src": "13992:39:3" - } - ] - }, - "documentation": "@notice Retrieves the address of the account that registered a darknode.\n @param _darknodeID The ID of the darknode to retrieve the owner for.", - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13921:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13921:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13920:21:3" - }, - "returnParameters": { - "id": 1927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13965:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13965:15:3", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13964:17:3" - }, - "scope": 2390, - "src": "13895:143:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1946, - "nodeType": "Block", - "src": "14269:55:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1943, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "14305:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14286:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "14286:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14286:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1940, - "id": 1945, - "nodeType": "Return", - "src": "14279:38:3" - } - ] - }, - "documentation": "@notice Retrieves the bond amount of a darknode in 10^-18 REN.\n @param _darknodeID The ID of the darknode to retrieve the bond for.", - "id": 1947, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14216:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14216:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14215:21:3" - }, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14260:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14260:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14259:9:3" - }, - "scope": 2390, - "src": "14191:133:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1959, - "nodeType": "Block", - "src": "14569:60:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1956, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14610:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1954, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodePublicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2681, - "src": "14586:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) view external returns (bytes memory)" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14586:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 1953, - "id": 1958, - "nodeType": "Return", - "src": "14579:43:3" - } - ] - }, - "documentation": "@notice Retrieves the encryption public key of the darknode.\n @param _darknodeID The ID of the darknode to retrieve the public key for.", - "id": 1960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1949, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14511:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14511:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:21:3" - }, - "returnParameters": { - "id": 1953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14555:12:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14554:14:3" - }, - "scope": 2390, - "src": "14481:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1989, - "nodeType": "Block", - "src": "15352:170:3", - "statements": [ - { - "assignments": [ - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1971, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "15362:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15362:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1973, - "initialValue": { - "argumentTypes": null, - "id": 1972, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1964, - "src": "15378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15362:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1974, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15398:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15407:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15398:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1982, - "nodeType": "IfStatement", - "src": "15394:61:3", - "trueBody": { - "id": 1981, - "nodeType": "Block", - "src": "15410:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1978, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "15432:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1980, - "nodeType": "ExpressionStatement", - "src": "15424:20:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1984, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "15494:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1985, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15502:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15509:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1983, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15471:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15471:44:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1969, - "id": 1988, - "nodeType": "Return", - "src": "15464:51:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which are registered for the\n current epoch.\n @param _start A darknode ID used as an offset for the list. If _start is\n 0x0, the first dark node will be used. _start won't be\n included it is not registered for the epoch.\n @param _count The number of darknodes to retrieve starting from _start.\n If _count is 0, all of the darknodes from _start are\n retrieved. If _count is more than the remaining number of\n registered darknodes, the rest of the list will contain\n 0x0s.", - "id": 1990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1962, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15279:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15279:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1964, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15295:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15295:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15278:32:3" - }, - "returnParameters": { - "id": 1969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15334:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15334:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15333:18:3" - }, - "scope": 2390, - "src": "15257:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "15783:182:3", - "statements": [ - { - "assignments": [ - 2001 - ], - "declarations": [ - { - "constant": false, - "id": 2001, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "15793:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15793:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2003, - "initialValue": { - "argumentTypes": null, - "id": 2002, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "15809:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15793:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2004, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15838:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15829:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2012, - "nodeType": "IfStatement", - "src": "15825:74:3", - "trueBody": { - "id": 2011, - "nodeType": "Block", - "src": "15841:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2007, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15855:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2008, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "15863:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15855:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "15855:33:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2014, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "15938:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2015, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15946:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15953:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2013, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15915:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 2017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:43:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1999, - "id": 2018, - "nodeType": "Return", - "src": "15908:50:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which were registered for the\n previous epoch. See `getDarknodes` for the parameter documentation.", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPreviousDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1992, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15710:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15710:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15726:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15726:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15709:32:3" - }, - "returnParameters": { - "id": 1999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15765:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15765:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15765:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15764:18:3" - }, - "scope": 2390, - "src": "15680:285:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "16212:156:3", - "statements": [ - { - "assignments": [ - 2028 - ], - "declarations": [ - { - "constant": false, - "id": 2028, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "16222:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16222:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2033, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2031, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "16272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2029, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16245:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "16245:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16245:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16222:62:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2034, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16301:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16317:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16301:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2038, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16337:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16337:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16322:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16301:60:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2026, - "id": 2042, - "nodeType": "Return", - "src": "16294:67:3" - } - ] - }, - "documentation": "@notice Returns whether a darknode is scheduled to become registered\n at next epoch.\n @param _darknodeID The ID of the darknode to return", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingRegistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16162:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16162:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16161:21:3" - }, - "returnParameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2025, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16206:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16205:6:3" - }, - "scope": 2390, - "src": "16131:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "16598:164:3", - "statements": [ - { - "assignments": [ - 2052 - ], - "declarations": [ - { - "constant": false, - "id": 2052, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2067, - "src": "16608:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16608:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "16662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2053, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16633:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16633:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16633:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16608:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2058, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16691:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16709:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16691:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16714:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2062, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16731:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16731:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16714:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16691:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2050, - "id": 2066, - "nodeType": "Return", - "src": "16684:71:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the pending deregistered state. In\n this state a darknode is still considered registered.", - "id": 2068, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingDeregistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16548:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16548:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16547:21:3" - }, - "returnParameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16592:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2048, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16592:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16591:6:3" - }, - "scope": 2390, - "src": "16515:247:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "16908:165:3", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "16918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2081, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2079, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "16972:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2077, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16943:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16943:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16943:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16918:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2082, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17001:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17019:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17001:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2085, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17024:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "17042:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "17042:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17024:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17001:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2074, - "id": 2090, - "nodeType": "Return", - "src": "16994:72:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the deregistered state.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16860:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16860:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16859:21:3" - }, - "returnParameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2073, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16902:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2072, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16902:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16901:6:3" - }, - "scope": 2390, - "src": "16836:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2114, - "nodeType": "Block", - "src": "17326:304:3", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "17336:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17336:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2103, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17390:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "17361:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17361:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17336:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2107, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17588:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2106, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17575:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2109, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "17604:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17622:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17575:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2098, - "id": 2113, - "nodeType": "Return", - "src": "17568:55:3" - } - ] - }, - "documentation": "@notice Returns if a darknode can be deregistered. This is true if the\n darknodes is in the registered state and has not attempted to\n deregister yet.", - "id": 2115, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregisterable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17278:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17278:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:21:3" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17320:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17320:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17319:6:3" - }, - "scope": 2390, - "src": "17252:378:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2144, - "nodeType": "Block", - "src": "17899:212:3", - "statements": [ - { - "assignments": [ - 2123 - ], - "declarations": [ - { - "constant": false, - "id": 2123, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17909:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "17959:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2124, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17932:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "17932:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17932:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17909:62:3" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17981:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17981:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2133, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "18035:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2131, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18006:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18006:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18006:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17981:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2136, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "18064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18080:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18064:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2139, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "18085:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18085:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18064:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2121, - "id": 2143, - "nodeType": "Return", - "src": "18057:47:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the refunded state. This is true\n for darknodes that have never been registered, or darknodes that have\n been deregistered and refunded.", - "id": 2145, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefunded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2117, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17851:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17851:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17850:21:3" - }, - "returnParameters": { - "id": 2121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2120, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17893:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17893:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17892:6:3" - }, - "scope": 2390, - "src": "17831:280:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2164, - "nodeType": "Block", - "src": "18336:125:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2153, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18368:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2152, - "name": "isDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "18353:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18353:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2157, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18413:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2155, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18384:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18384:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18384:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2159, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18429:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "18429:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18384:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18353:101:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2151, - "id": 2163, - "nodeType": "Return", - "src": "18346:108:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is refundable. This is true for darknodes\n that have been in the deregistered state for one full epoch.", - "id": 2165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefundable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2147, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18288:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18287:21:3" - }, - "returnParameters": { - "id": 2151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2150, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18330:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2149, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18330:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18329:6:3" - }, - "scope": 2390, - "src": "18266:195:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2177, - "nodeType": "Block", - "src": "18603:70:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2173, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2167, - "src": "18640:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2174, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "18653:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2172, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18620:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2171, - "id": 2176, - "nodeType": "Return", - "src": "18613:53:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the registered state.", - "id": 2178, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2167, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18555:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18555:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18554:21:3" - }, - "returnParameters": { - "id": 2171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18597:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18597:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18596:6:3" - }, - "scope": 2390, - "src": "18533:140:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "18842:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "18879:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18892:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2185, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18859:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18859:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2184, - "id": 2189, - "nodeType": "Return", - "src": "18852:54:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state last epoch.", - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInPreviousEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18793:21:3" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18836:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18836:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18835:6:3" - }, - "scope": 2390, - "src": "18757:156:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2240, - "nodeType": "Block", - "src": "19218:509:3", - "statements": [ - { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19228:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19228:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2206, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2204, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19278:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2202, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19251:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "19251:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19251:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19228:62:3" - }, - { - "assignments": [ - 2208 - ], - "declarations": [ - { - "constant": false, - "id": 2208, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19300:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19300:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2213, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19354:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2209, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19325:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "19325:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19300:66:3" - }, - { - "assignments": [ - 2215 - ], - "declarations": [ - { - "constant": false, - "id": 2215, - "name": "registered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19376:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2214, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19376:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2224, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2216, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19410:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19394:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2219, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19415:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2220, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19431:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19431:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19415:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19394:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19376:73:3" - }, - { - "assignments": [ - 2226 - ], - "declarations": [ - { - "constant": false, - "id": 2226, - "name": "notDeregistered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19459:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19459:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2235, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2227, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19482:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19500:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19482:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2230, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19505:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2231, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19522:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19522:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19505:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19482:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19459:81:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2236, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "19691:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2237, - "name": "notDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "19705:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19691:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2199, - "id": 2239, - "nodeType": "Return", - "src": "19684:36:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state for a given\n epoch.\n @param _darknodeID The ID of the darknode\n @param _epoch One of currentEpoch, previousEpoch", - "id": 2241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19148:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19148:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2195, - "name": "_epoch", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19169:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 2194, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "19169:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19147:42:3" - }, - "returnParameters": { - "id": 2199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19212:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19212:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19211:6:3" - }, - "scope": 2390, - "src": "19119:608:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2360, - "nodeType": "Block", - "src": "20170:1037:3", - "statements": [ - { - "assignments": [ - 2254 - ], - "declarations": [ - { - "constant": false, - "id": 2254, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20180:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2256, - "initialValue": { - "argumentTypes": null, - "id": 2255, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "20196:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20180:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2257, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20225:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20216:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2265, - "nodeType": "IfStatement", - "src": "20212:61:3", - "trueBody": { - "id": 2264, - "nodeType": "Block", - "src": "20228:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2260, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2261, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "20250:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20242:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "20242:20:3" - } - ] - } - }, - { - "assignments": [ - 2269 - ], - "declarations": [ - { - "constant": false, - "id": 2269, - "name": "nodes", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20283:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20283:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20283:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2273, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20322:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20308:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 2270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20312:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20312:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20308:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20283:45:3" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20388:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20400:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20388:13:3" - }, - { - "assignments": [ - 2281 - ], - "declarations": [ - { - "constant": false, - "id": 2281, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20411:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2283, - "initialValue": { - "argumentTypes": null, - "id": 2282, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "20426:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20411:21:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2284, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20446:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20462:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20454:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20454:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20446:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2296, - "nodeType": "IfStatement", - "src": "20442:69:3", - "trueBody": { - "id": 2295, - "nodeType": "Block", - "src": "20466:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2289, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20480:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "20487:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2492, - "src": "20487:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20487:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20480:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "20480:20:3" - } - ] - } - }, - { - "body": { - "id": 2356, - "nodeType": "Block", - "src": "20609:570:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2300, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20643:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20635:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20635:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20627:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2307, - "nodeType": "IfStatement", - "src": "20623:62:3", - "trueBody": { - "id": 2306, - "nodeType": "Block", - "src": "20647:38:3", - "statements": [ - { - "id": 2305, - "nodeType": "Break", - "src": "20665:5:3" - } - ] - } - }, - { - "assignments": [ - 2309 - ], - "declarations": [ - { - "constant": false, - "id": 2309, - "name": "includeNext", - "nodeType": "VariableDeclaration", - "scope": 2356, - "src": "20766:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2310, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20766:16:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2311, - "name": "_usePreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2247, - "src": "20800:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2325, - "nodeType": "Block", - "src": "20905:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2319, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20923:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2321, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20950:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2320, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "20937:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20937:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20923:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2324, - "nodeType": "ExpressionStatement", - "src": "20923:32:3" - } - ] - }, - "id": 2326, - "nodeType": "IfStatement", - "src": "20796:174:3", - "trueBody": { - "id": 2318, - "nodeType": "Block", - "src": "20819:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20837:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2314, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2313, - "name": "isRegisteredInPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "20851:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20851:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20837:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "20837:47:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20987:12:3", - "subExpression": { - "argumentTypes": null, - "id": 2327, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20988:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2338, - "nodeType": "IfStatement", - "src": "20983:100:3", - "trueBody": { - "id": 2337, - "nodeType": "Block", - "src": "21001:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2329, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2332, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2330, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21026:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21026:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21026:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21019:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2335, - "nodeType": "ExpressionStatement", - "src": "21019:23:3" - }, - { - "id": 2336, - "nodeType": "Continue", - "src": "21060:8:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2339, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21096:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2341, - "indexExpression": { - "argumentTypes": null, - "id": 2340, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21102:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21096:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2342, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21107:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21096:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2344, - "nodeType": "ExpressionStatement", - "src": "21096:15:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2348, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21143:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2346, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21132:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21132:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21132:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21125:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2351, - "nodeType": "ExpressionStatement", - "src": "21125:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2352, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21162:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21167:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21162:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "21162:6:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2297, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "20598:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2298, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20602:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2357, - "nodeType": "WhileStatement", - "src": "20591:588:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21195:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2252, - "id": 2359, - "nodeType": "Return", - "src": "21188:12:3" - } - ] - }, - "documentation": "@notice Returns a list of darknodes registered for either the current\n or the previous epoch. See `getDarknodes` for documentation on the\n parameters `_start` and `_count`.\n @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n the current epoch.", - "id": 2361, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodesFromEpochs", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2243, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20074:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20074:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20090:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2247, - "name": "_usePreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20106:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20106:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20073:56:3" - }, - "returnParameters": { - "id": 2252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20152:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2250, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20152:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20151:18:3" - }, - "scope": 2390, - "src": "20042:1165:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2388, - "nodeType": "Block", - "src": "21330:303:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2369, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21423:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2373, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "21465:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "21436:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "21436:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "21436:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21436:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2366, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21388:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2606, - "src": "21388:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21388:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "21388:99:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2377, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21497:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21547:1:3", - "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": 2378, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21521:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "21521:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21521:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21497:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "21497:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21614:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2384, - "name": "LogDarknodeDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "21590:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21590:36:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2387, - "nodeType": "EmitStatement", - "src": "21585:41:3" - } - ] - }, - "documentation": "Private function called by `deregister` and `slash`", - "id": 2389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deregisterDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2363, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2389, - "src": "21301:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21301:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21300:21:3" - }, - "returnParameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [], - "src": "21330:0:3" - }, - "scope": 2390, - "src": "21273:360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 2391, - "src": "375:21260:3" - } - ], - "src": "0:21636:3" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "exportedSymbols": { - "DarknodeRegistry": [ - 2390 - ] - }, - "id": 2391, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1289, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1290, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7653, - "src": "25:63:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1291, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7542, - "src": "89:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 1292, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2808, - "src": "150:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "file": "../DarknodeSlasher/DarknodeSlasher.sol", - "id": 1293, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2722, - "src": "185:48:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "file": "./DarknodeRegistryStore.sol", - "id": 1294, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2683, - "src": "234:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1295, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 1296, - "nodeType": "InheritanceSpecifier", - "src": "404:7:3" - } - ], - "contractDependencies": [ - 7652 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeRegistry is responsible for the registration and\n deregistration of Darknodes.", - "fullyImplemented": true, - "id": 2390, - "linearizedBaseContracts": [ - 2390, - 7652 - ], - "name": "DarknodeRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1299, - "libraryName": { - "contractScope": null, - "id": 1297, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "424:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:3", - "typeName": { - "id": 1298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1301, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "451:21:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1300, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistry.Epoch", - "id": 1306, - "members": [ - { - "constant": false, - "id": 1303, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "767:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "767:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1305, - "name": "blocknumber", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "794:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Epoch", - "nodeType": "StructDefinition", - "scope": 2390, - "src": "744:76:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1308, - "name": "numDarknodes", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "826:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1310, - "name": "numDarknodesNextEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "859:36:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "859:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1312, - "name": "numDarknodesPreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "901:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1314, - "name": "minimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "997:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1316, - "name": "minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1029:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1318, - "name": "minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1064:35:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1320, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1270:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1322, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1306:33:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1324, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1345:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1326, - "name": "currentEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1430:25:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1325, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1430:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1328, - "name": "previousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1461:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1327, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1461:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1330, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1556:19:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1329, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "1556:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1332, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1653:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1331, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "1653:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1334, - "name": "slasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1762:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1333, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1336, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1798:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1335, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is registered.\n @param _darknodeID The darknode ID that was registered.\n @param _bond The amount of REN that was transferred as bond.", - "id": 1342, - "name": "LogDarknodeRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2055:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": false, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2084:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2054:44:3" - }, - "src": "2027:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is deregistered.\n @param _darknodeID The darknode ID that was deregistered.", - "id": 1346, - "name": "LogDarknodeDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2258:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2258:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:29:3" - }, - "src": "2228:59:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a refund has been made.\n @param _owner The address that was refunded.\n @param _amount The amount of REN that was refunded.", - "id": 1352, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1348, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2490:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2514:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2489:41:3" - }, - "src": "2459:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new epoch has begun.", - "id": 1356, - "name": "LogNewEpoch", - "nodeType": "EventDefinition", - "parameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1354, - "indexed": true, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "2607:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2607:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2606:27:3" - }, - "src": "2589:45:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a constructor parameter has been updated.", - "id": 1362, - "name": "LogMinimumBondUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "indexed": false, - "name": "previousMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2739:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2739:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "indexed": false, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2768:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2768:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2738:54:3" - }, - "src": "2711:82:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1368, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "indexed": false, - "name": "previousMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2829:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2829:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1366, - "indexed": false, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2861:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2828:60:3" - }, - "src": "2798:91:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1374, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1370, - "indexed": false, - "name": "previousMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2931:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "indexed": false, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2969:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2930:72:3" - }, - "src": "2894:109:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1380, - "name": "LogSlasherUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1376, - "indexed": false, - "name": "previousSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3032:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1378, - "indexed": false, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3057:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:46:3" - }, - "src": "3008:70:3" - }, - { - "body": { - "id": 1396, - "nodeType": "Block", - "src": "3211:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1387, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1382, - "src": "3249:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1385, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "3229:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "3229:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1389, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "3265:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3229:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206461726b6e6f6465206f776e6572", - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3277:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - }, - "value": "must be darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - } - ], - "id": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3221:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3221:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "3221:81:3" - }, - { - "id": 1395, - "nodeType": "PlaceholderStatement", - "src": "3312:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the owner that registered the darknode.", - "id": 1397, - "name": "onlyDarknodeOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1397, - "src": "3190:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3190:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3189:21:3" - }, - "src": "3163:157:3", - "visibility": "internal" - }, - { - "body": { - "id": 1409, - "nodeType": "Block", - "src": "3432:100:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1403, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1402, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "3450:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3450:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520726566756e646564206f72206e657665722072656769737465726564", - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - }, - "value": "must be refunded or never registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - } - ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3442:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3442:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "ExpressionStatement", - "src": "3442:72:3" - }, - { - "id": 1408, - "nodeType": "PlaceholderStatement", - "src": "3524:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to unregistered darknodes.", - "id": 1410, - "name": "onlyRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1410, - "src": "3411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3410:21:3" - }, - "src": "3389:143:3", - "visibility": "internal" - }, - { - "body": { - "id": 1422, - "nodeType": "Block", - "src": "3644:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1416, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1415, - "name": "isRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "3662:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f6368", - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3689:45:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - }, - "value": "must be deregistered for at least one epoch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - } - ], - "id": 1414, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3654:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "3654:81:3" - }, - { - "id": 1421, - "nodeType": "PlaceholderStatement", - "src": "3745:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to refundable darknodes.", - "id": 1423, - "name": "onlyRefundable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1412, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1423, - "src": "3623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3623:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:21:3" - }, - "src": "3599:154:3", - "visibility": "internal" - }, - { - "body": { - "id": 1435, - "nodeType": "Block", - "src": "3906:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1428, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "3924:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3924:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206465726567697374657261626c65", - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - }, - "value": "must be deregisterable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - } - ], - "id": 1427, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "3916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3916:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1433, - "nodeType": "ExpressionStatement", - "src": "3916:64:3" - }, - { - "id": 1434, - "nodeType": "PlaceholderStatement", - "src": "3990:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to registered nodes without a pending\n deregistration.", - "id": 1436, - "name": "onlyDeregisterable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1436, - "src": "3885:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3885:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3884:21:3" - }, - "src": "3857:141:3", - "visibility": "internal" - }, - { - "body": { - "id": 1449, - "nodeType": "Block", - "src": "4088:86:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "4114:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4106:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4106:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1442, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "4126:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4126:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4106:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520736c6173686572", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4138:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - }, - "value": "must be slasher" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - } - ], - "id": 1438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4098:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4098:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "4098:58:3" - }, - { - "id": 1448, - "nodeType": "PlaceholderStatement", - "src": "4166:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the Slasher contract.", - "id": 1450, - "name": "onlySlasher", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "4085:2:3" - }, - "src": "4065:109:3", - "visibility": "internal" - }, - { - "body": { - "id": 1528, - "nodeType": "Block", - "src": "4941:613:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1465, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "4951:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1466, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "4961:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4951:18:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1468, - "nodeType": "ExpressionStatement", - "src": "4951:18:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "4980:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1470, - "name": "_storeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4988:13:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "src": "4980:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "4980:21:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1473, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5011:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1474, - "name": "_renAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1454, - "src": "5017:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "5011:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "5011:17:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "_minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "5053:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5039:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1480, - "nodeType": "ExpressionStatement", - "src": "5039:26:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "5075:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1482, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5093:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "5075:29:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5115:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1486, - "name": "_minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "5132:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1488, - "nodeType": "ExpressionStatement", - "src": "5115:32:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "5157:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1490, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5178:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5157:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1492, - "nodeType": "ExpressionStatement", - "src": "5157:35:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5203:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1494, - "name": "_minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "5226:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5203:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1496, - "nodeType": "ExpressionStatement", - "src": "5203:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "5257:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1498, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5284:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5257:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "5257:47:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "5315:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "5379:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5379:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1504, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8334, - "src": "5369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "5424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5424:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1502, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "5330:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "5330:117:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "5315:132:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "5315:132:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "5457:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5472:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5457:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "5457:16:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1520, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5483:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5483:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "5483:25:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1524, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5518:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5518:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1527, - "nodeType": "ExpressionStatement", - "src": "5518:29:3" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _renAddress The address of the RenToken contract.\n @param _storeAddress The address of the DarknodeRegistryStore contract.\n @param _minimumBond The minimum bond amount that can be submitted by a\n Darknode.\n @param _minimumPodSize The minimum size of a Darknode pod.\n @param _minimumEpochInterval The minimum number of blocks between\n epochs.", - "id": 1529, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1452, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4728:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1451, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4728:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "name": "_renAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4760:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1453, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "4760:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "name": "_storeAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4790:35:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1455, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "4790:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_minimumBond", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4835:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4835:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "name": "_minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4865:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4898:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4898:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4718:215:3" - }, - "returnParameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "4941:0:3" - }, - "scope": 2390, - "src": "4707:847:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1584, - "nodeType": "Block", - "src": "6349:638:3", - "statements": [ - { - "assignments": [ - 1540 - ], - "declarations": [ - { - "constant": false, - "id": 1540, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 1584, - "src": "6423:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6423:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1542, - "initialValue": { - "argumentTypes": null, - "id": 1541, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "6438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6423:26:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1546, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "6519:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6519:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6539:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6531:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1551, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6547:4:3", - "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, - "id": 1544, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6502:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 8185, - "src": "6502:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6502:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1543, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "6494:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6494:83:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1555, - "nodeType": "ExpressionStatement", - "src": "6494:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6669:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1560, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "6694:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6694:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1562, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6718:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1563, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "6736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1567, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "6789:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "6760:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "6760:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "6760:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6760:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6824:1:3", - "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_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1556, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6635:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "appendDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2479, - "src": "6635:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address payable,uint256,bytes memory,uint256,uint256) external" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:200:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "6635:200:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6846:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:1:3", - "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": 1573, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "6870:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6870:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6846:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "6846:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1580, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6962:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1581, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1579, - "name": "LogDarknodeRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "6940:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1583, - "nodeType": "EmitStatement", - "src": "6935:45:3" - } - ] - }, - "documentation": "@notice Register a darknode and transfer the bond to this contract.\n Before registering, the bond transfer must be approved in the REN\n contract. The caller must provide a public encryption key for the\n darknode. The darknode will remain pending registration until the next\n epoch. Only after this period can the darknode be deregistered. The\n caller of this method will be stored as the owner of the darknode.\n\n /// @param _darknodeID The darknode ID that will be registered.\n @param _publicKey The public key of the darknode. It is stored to allow\n other darknodes and traders to encrypt messages to the trader.", - "id": 1585, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1536, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6336:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1537, - "modifierName": { - "argumentTypes": null, - "id": 1535, - "name": "onlyRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "6323:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6323:25:3" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6266:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6266:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6287:25:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6287:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6265:48:3" - }, - "returnParameters": { - "id": 1538, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:0:3" - }, - "scope": 2390, - "src": "6248:739:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1600, - "nodeType": "Block", - "src": "7505:48:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1597, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7534:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1596, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "7515:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1599, - "nodeType": "ExpressionStatement", - "src": "7515:31:3" - } - ] - }, - "documentation": "@notice Deregister a darknode. The darknode will not be deregistered\n until the end of the epoch. After another epoch, the bond can be\n refunded by calling the refund method.\n @param _darknodeID The darknode ID that will be deregistered. The caller\n of this method store.darknodeRegisteredAt(_darknodeID) must be", - "id": 1601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1590, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1591, - "modifierName": { - "argumentTypes": null, - "id": 1589, - "name": "onlyDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "7442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7442:31:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1593, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7492:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1594, - "modifierName": { - "argumentTypes": null, - "id": 1592, - "name": "onlyDarknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "7474:17:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7474:30:3" - } - ], - "name": "deregister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1587, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "7412:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7412:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7411:21:3" - }, - "returnParameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:3" - }, - "scope": 2390, - "src": "7392:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1726, - "nodeType": "Block", - "src": "7755:1684:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "7769:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "7769:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7798:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7769:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1618, - "nodeType": "IfStatement", - "src": "7765:199:3", - "trueBody": { - "id": 1617, - "nodeType": "Block", - "src": "7801:163:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "7898:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7898:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1611, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7575, - "src": "7912:5:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7912:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7898:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420617574686f72697a6564202866697273742065706f63687329", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - }, - "value": "not authorized (first epochs)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - } - ], - "id": 1608, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "7890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7890:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1616, - "nodeType": "ExpressionStatement", - "src": "7890:63:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8036:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8036:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1625, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "8081:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1622, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8052:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "8052:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "8052:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8052:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8036:66:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "65706f636820696e74657276616c20686173206e6f7420706173736564", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8104:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - }, - "value": "epoch interval has not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - } - ], - "id": 1619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "8028:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8028:108:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1630, - "nodeType": "ExpressionStatement", - "src": "8028:108:3" - }, - { - "assignments": [ - 1632 - ], - "declarations": [ - { - "constant": false, - "id": 1632, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "8146:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8146:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8184:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8184:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8199:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1634, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8334, - "src": "8174:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8174:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8166:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8146:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1642, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "8260:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8276:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "src": "8260:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "8260:28:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1646, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8298:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1648, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "8344:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8333, - "src": "8380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8380:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1647, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "8313:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "8313:90:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "8298:105:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1653, - "nodeType": "ExpressionStatement", - "src": "8298:105:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "8457:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1655, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8485:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8457:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "8457:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8507:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1659, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "8522:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8507:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1661, - "nodeType": "ExpressionStatement", - "src": "8507:36:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1662, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8633:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1663, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8652:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1675, - "nodeType": "IfStatement", - "src": "8629:160:3", - "trueBody": { - "id": 1674, - "nodeType": "Block", - "src": "8665:124:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1665, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8679:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1666, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8693:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8679:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1668, - "nodeType": "ExpressionStatement", - "src": "8679:29:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1670, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8749:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1671, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1669, - "name": "LogMinimumBondUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1362, - "src": "8727:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8727:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "EmitStatement", - "src": "8722:56:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1676, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8802:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1677, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8824:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8802:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1689, - "nodeType": "IfStatement", - "src": "8798:181:3", - "trueBody": { - "id": 1688, - "nodeType": "Block", - "src": "8840:139:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1679, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8854:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1680, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8871:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8854:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1682, - "nodeType": "ExpressionStatement", - "src": "8854:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8933:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1685, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1683, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "8908:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8908:60:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1687, - "nodeType": "EmitStatement", - "src": "8903:65:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1690, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "8992:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1691, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9020:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8992:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1703, - "nodeType": "IfStatement", - "src": "8988:223:3", - "trueBody": { - "id": 1702, - "nodeType": "Block", - "src": "9042:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1693, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9056:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1694, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9079:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9056:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1696, - "nodeType": "ExpressionStatement", - "src": "9056:47:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9153:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1699, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1697, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "9122:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9122:78:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "EmitStatement", - "src": "9117:83:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1704, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9224:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1705, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9239:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9224:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1721, - "nodeType": "IfStatement", - "src": "9220:150:3", - "trueBody": { - "id": 1720, - "nodeType": "Block", - "src": "9248:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1707, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1708, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9262:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1710, - "nodeType": "ExpressionStatement", - "src": "9262:21:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9328:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9320:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9320:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9346:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9338:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9338:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1711, - "name": "LogSlasherUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "9302:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9302:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1719, - "nodeType": "EmitStatement", - "src": "9297:62:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1723, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "9422:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1722, - "name": "LogNewEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "9410:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9410:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "EmitStatement", - "src": "9405:27:3" - } - ] - }, - "documentation": "@notice Progress the epoch if it is possible to do so. This captures\n the current timestamp and current blockhash and overrides the current\n epoch.", - "id": 1727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "epoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7743:2:3" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "7755:0:3" - }, - "scope": 2390, - "src": "7729:1710:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1740, - "nodeType": "Block", - "src": "9697:51:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1737, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "9731:9:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1734, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "9707:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4441, - "src": "9707:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9707:34:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "9707:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodeRegistryStore. \n @param _newOwner The address to transfer the ownership to.", - "id": 1741, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1732, - "modifierName": { - "argumentTypes": null, - "id": 1731, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "9687:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9687:9:3" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1729, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "9659:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:19:3" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:3" - }, - "scope": 2390, - "src": "9627:121:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1751, - "nodeType": "Block", - "src": "10004:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "10014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4462, - "src": "10014:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1750, - "nodeType": "ExpressionStatement", - "src": "10014:22:3" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another Darknode Registry.", - "id": 1752, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1744, - "modifierName": { - "argumentTypes": null, - "id": 1743, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "9994:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9994:9:3" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [], - "src": "9982:2:3" - }, - "returnParameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "10004:0:3" - }, - "scope": 2390, - "src": "9954:89:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1763, - "nodeType": "Block", - "src": "10299:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1759, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10347:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1760, - "name": "_nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "10365:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10347:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "10347:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum bond.\n @param _nextMinimumBond The minimum bond amount that can be submitted by\n a darknode.", - "id": 1764, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1757, - "modifierName": { - "argumentTypes": null, - "id": 1756, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "10289:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10289:9:3" - } - ], - "name": "updateMinimumBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1754, - "name": "_nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "10254:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:26:3" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [], - "src": "10299:0:3" - }, - "scope": 2390, - "src": "10227:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "10608:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1771, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "10656:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1772, - "name": "_nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "10677:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10656:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1774, - "nodeType": "ExpressionStatement", - "src": "10656:40:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum pod size.\n @param _nextMinimumPodSize The minimum size of a pod.", - "id": 1776, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1769, - "modifierName": { - "argumentTypes": null, - "id": 1768, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "10598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10598:9:3" - } - ], - "name": "updateMinimumPodSize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "name": "_nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "10560:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1765, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10559:29:3" - }, - "returnParameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [], - "src": "10608:0:3" - }, - "scope": 2390, - "src": "10530:173:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1787, - "nodeType": "Block", - "src": "10965:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1783, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "11013:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1784, - "name": "_nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "11040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11013:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "11013:52:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum epoch interval.\n @param _nextMinimumEpochInterval The minimum number of blocks between epochs.", - "id": 1788, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1781, - "modifierName": { - "argumentTypes": null, - "id": 1780, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "10955:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10955:9:3" - } - ], - "name": "updateMinimumEpochInterval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "10911:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10910:35:3" - }, - "returnParameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [], - "src": "10965:0:3" - }, - "scope": 2390, - "src": "10875:197:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1810, - "nodeType": "Block", - "src": "11292:116:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1797, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11318:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11310:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11310:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11331:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11310:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420736c61736865722061646472657373", - "id": 1803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11343:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - }, - "value": "invalid slasher address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - } - ], - "id": 1795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "11302:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1805, - "nodeType": "ExpressionStatement", - "src": "11302:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1806, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "11379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1807, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11393:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "11379:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1809, - "nodeType": "ExpressionStatement", - "src": "11379:22:3" - } - ] - }, - "documentation": "@notice Allow the contract owner to update the DarknodeSlasher contract\n address.\n @param _slasher The new slasher address.", - "id": 1811, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1793, - "modifierName": { - "argumentTypes": null, - "id": 1792, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "11282:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11282:9:3" - } - ], - "name": "updateSlasher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "name": "_slasher", - "nodeType": "VariableDeclaration", - "scope": 1811, - "src": "11247:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1789, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "11247:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11246:26:3" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [], - "src": "11292:0:3" - }, - "scope": 2390, - "src": "11224:184:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1877, - "nodeType": "Block", - "src": "12101:695:3", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "penalty", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12111:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12111:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1830, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12129:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "12129:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12129:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12129:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12111:49:3" - }, - { - "assignments": [ - 1832 - ], - "declarations": [ - { - "constant": false, - "id": 1832, - "name": "reward", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12170:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1833, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12187:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12197:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12187:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12170:28:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1840, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12289:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1841, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1837, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12264:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2589, - "src": "12264:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12264:42:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12264:42:3" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12410:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1844, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "12393:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12393:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1852, - "nodeType": "IfStatement", - "src": "12389:83:3", - "trueBody": { - "id": 1851, - "nodeType": "Block", - "src": "12420:52:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1848, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1847, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "12434:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12434:27:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1850, - "nodeType": "ExpressionStatement", - "src": "12434:27:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "12640:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1856, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12620:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12620:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12655:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12607:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "12607:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12607:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12664:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12599:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12599:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1864, - "nodeType": "ExpressionStatement", - "src": "12599:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1870, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "12740:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12720:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12720:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12720:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1872, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12755:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1866, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12707:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "12707:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12707:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1865, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "12699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12699:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1876, - "nodeType": "ExpressionStatement", - "src": "12699:90:3" - } - ] - }, - "documentation": "@notice Allow the DarknodeSlasher contract to slash half of a darknode's\n bond and deregister it. The bond is distributed as follows:\n 1/2 is kept by the guilty prover\n 1/8 is rewarded to the first challenger\n 1/8 is rewarded to the second challenger\n 1/4 becomes unassigned\n @param _prover The guilty prover whose bond is being slashed\n @param _challenger1 The first of the two darknodes who submitted the challenge\n @param _challenger2 The second of the two darknodes who submitted the challenge", - "id": 1878, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1820, - "modifierName": { - "argumentTypes": null, - "id": 1819, - "name": "onlySlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "12085:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12085:11:3" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1813, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "11999:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1815, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12016:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12016:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1817, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12038:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12038:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:61:3" - }, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "12101:0:3" - }, - "scope": 2390, - "src": "11984:812:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "13255:476:3", - "statements": [ - { - "assignments": [ - 1887 - ], - "declarations": [ - { - "constant": false, - "id": 1887, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13265:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13265:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1892, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13309:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1888, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13289:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13289:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13289:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13265:56:3" - }, - { - "assignments": [ - 1894 - ], - "declarations": [ - { - "constant": false, - "id": 1894, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13368:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1893, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1897, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13404:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13385:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "13385:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13385:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13368:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1903, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1900, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13475:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2545, - "src": "13475:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13475:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1905, - "nodeType": "ExpressionStatement", - "src": "13475:33:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1909, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13588:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1910, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1907, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "13575:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "13575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13575:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13612:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1906, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "13567:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13567:68:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1914, - "nodeType": "ExpressionStatement", - "src": "13567:68:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1916, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13702:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13717:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1915, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "13677:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13677:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "EmitStatement", - "src": "13672:52:3" - } - ] - }, - "documentation": "@notice Refund the bond of a deregistered darknode. This will make the\n darknode available for registration again. Anyone can call this function\n but the bond will always be refunded to the darknode owner.\n\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n of this method must be the owner of this darknode.", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1883, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13242:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1884, - "modifierName": { - "argumentTypes": null, - "id": 1882, - "name": "onlyRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "13227:14:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13227:27:3" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1880, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "13197:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13197:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13196:21:3" - }, - "returnParameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [], - "src": "13255:0:3" - }, - "scope": 2390, - "src": "13181:550:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "13982:56:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1930, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1923, - "src": "14019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1928, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13999:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13999:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13999:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 1927, - "id": 1932, - "nodeType": "Return", - "src": "13992:39:3" - } - ] - }, - "documentation": "@notice Retrieves the address of the account that registered a darknode.\n @param _darknodeID The ID of the darknode to retrieve the owner for.", - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13921:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13921:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13920:21:3" - }, - "returnParameters": { - "id": 1927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13965:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13965:15:3", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13964:17:3" - }, - "scope": 2390, - "src": "13895:143:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1946, - "nodeType": "Block", - "src": "14269:55:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1943, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "14305:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14286:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "14286:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14286:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1940, - "id": 1945, - "nodeType": "Return", - "src": "14279:38:3" - } - ] - }, - "documentation": "@notice Retrieves the bond amount of a darknode in 10^-18 REN.\n @param _darknodeID The ID of the darknode to retrieve the bond for.", - "id": 1947, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14216:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14216:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14215:21:3" - }, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14260:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14260:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14259:9:3" - }, - "scope": 2390, - "src": "14191:133:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1959, - "nodeType": "Block", - "src": "14569:60:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1956, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14610:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1954, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodePublicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2681, - "src": "14586:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) view external returns (bytes memory)" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14586:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 1953, - "id": 1958, - "nodeType": "Return", - "src": "14579:43:3" - } - ] - }, - "documentation": "@notice Retrieves the encryption public key of the darknode.\n @param _darknodeID The ID of the darknode to retrieve the public key for.", - "id": 1960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1949, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14511:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14511:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:21:3" - }, - "returnParameters": { - "id": 1953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14555:12:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14554:14:3" - }, - "scope": 2390, - "src": "14481:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1989, - "nodeType": "Block", - "src": "15352:170:3", - "statements": [ - { - "assignments": [ - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1971, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "15362:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15362:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1973, - "initialValue": { - "argumentTypes": null, - "id": 1972, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1964, - "src": "15378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15362:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1974, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15398:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15407:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15398:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1982, - "nodeType": "IfStatement", - "src": "15394:61:3", - "trueBody": { - "id": 1981, - "nodeType": "Block", - "src": "15410:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1978, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "15432:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1980, - "nodeType": "ExpressionStatement", - "src": "15424:20:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1984, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "15494:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1985, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15502:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15509:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1983, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15471:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15471:44:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1969, - "id": 1988, - "nodeType": "Return", - "src": "15464:51:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which are registered for the\n current epoch.\n @param _start A darknode ID used as an offset for the list. If _start is\n 0x0, the first dark node will be used. _start won't be\n included it is not registered for the epoch.\n @param _count The number of darknodes to retrieve starting from _start.\n If _count is 0, all of the darknodes from _start are\n retrieved. If _count is more than the remaining number of\n registered darknodes, the rest of the list will contain\n 0x0s.", - "id": 1990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1962, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15279:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15279:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1964, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15295:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15295:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15278:32:3" - }, - "returnParameters": { - "id": 1969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15334:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15334:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15333:18:3" - }, - "scope": 2390, - "src": "15257:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "15783:182:3", - "statements": [ - { - "assignments": [ - 2001 - ], - "declarations": [ - { - "constant": false, - "id": 2001, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "15793:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15793:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2003, - "initialValue": { - "argumentTypes": null, - "id": 2002, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "15809:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15793:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2004, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15838:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15829:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2012, - "nodeType": "IfStatement", - "src": "15825:74:3", - "trueBody": { - "id": 2011, - "nodeType": "Block", - "src": "15841:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2007, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15855:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2008, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "15863:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15855:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "15855:33:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2014, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "15938:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2015, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15946:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15953:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2013, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15915:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 2017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:43:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1999, - "id": 2018, - "nodeType": "Return", - "src": "15908:50:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which were registered for the\n previous epoch. See `getDarknodes` for the parameter documentation.", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPreviousDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1992, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15710:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15710:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15726:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15726:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15709:32:3" - }, - "returnParameters": { - "id": 1999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15765:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15765:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15765:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15764:18:3" - }, - "scope": 2390, - "src": "15680:285:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "16212:156:3", - "statements": [ - { - "assignments": [ - 2028 - ], - "declarations": [ - { - "constant": false, - "id": 2028, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "16222:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16222:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2033, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2031, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "16272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2029, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16245:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "16245:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16245:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16222:62:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2034, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16301:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16317:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16301:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2038, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16337:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16337:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16322:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16301:60:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2026, - "id": 2042, - "nodeType": "Return", - "src": "16294:67:3" - } - ] - }, - "documentation": "@notice Returns whether a darknode is scheduled to become registered\n at next epoch.\n @param _darknodeID The ID of the darknode to return", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingRegistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16162:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16162:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16161:21:3" - }, - "returnParameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2025, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16206:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16205:6:3" - }, - "scope": 2390, - "src": "16131:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "16598:164:3", - "statements": [ - { - "assignments": [ - 2052 - ], - "declarations": [ - { - "constant": false, - "id": 2052, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2067, - "src": "16608:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16608:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "16662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2053, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16633:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16633:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16633:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16608:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2058, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16691:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16709:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16691:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16714:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2062, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16731:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16731:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16714:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16691:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2050, - "id": 2066, - "nodeType": "Return", - "src": "16684:71:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the pending deregistered state. In\n this state a darknode is still considered registered.", - "id": 2068, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingDeregistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16548:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16548:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16547:21:3" - }, - "returnParameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16592:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2048, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16592:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16591:6:3" - }, - "scope": 2390, - "src": "16515:247:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "16908:165:3", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "16918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2081, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2079, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "16972:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2077, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16943:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16943:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16943:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16918:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2082, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17001:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17019:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17001:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2085, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17024:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "17042:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "17042:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17024:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17001:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2074, - "id": 2090, - "nodeType": "Return", - "src": "16994:72:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the deregistered state.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16860:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16860:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16859:21:3" - }, - "returnParameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2073, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16902:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2072, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16902:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16901:6:3" - }, - "scope": 2390, - "src": "16836:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2114, - "nodeType": "Block", - "src": "17326:304:3", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "17336:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17336:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2103, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17390:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "17361:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17361:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17336:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2107, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17588:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2106, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17575:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2109, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "17604:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17622:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17575:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2098, - "id": 2113, - "nodeType": "Return", - "src": "17568:55:3" - } - ] - }, - "documentation": "@notice Returns if a darknode can be deregistered. This is true if the\n darknodes is in the registered state and has not attempted to\n deregister yet.", - "id": 2115, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregisterable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17278:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17278:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:21:3" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17320:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17320:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17319:6:3" - }, - "scope": 2390, - "src": "17252:378:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2144, - "nodeType": "Block", - "src": "17899:212:3", - "statements": [ - { - "assignments": [ - 2123 - ], - "declarations": [ - { - "constant": false, - "id": 2123, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17909:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "17959:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2124, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17932:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "17932:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17932:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17909:62:3" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17981:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17981:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2133, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "18035:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2131, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18006:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18006:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18006:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17981:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2136, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "18064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18080:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18064:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2139, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "18085:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18085:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18064:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2121, - "id": 2143, - "nodeType": "Return", - "src": "18057:47:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the refunded state. This is true\n for darknodes that have never been registered, or darknodes that have\n been deregistered and refunded.", - "id": 2145, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefunded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2117, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17851:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17851:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17850:21:3" - }, - "returnParameters": { - "id": 2121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2120, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17893:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17893:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17892:6:3" - }, - "scope": 2390, - "src": "17831:280:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2164, - "nodeType": "Block", - "src": "18336:125:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2153, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18368:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2152, - "name": "isDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "18353:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18353:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2157, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18413:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2155, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18384:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18384:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18384:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2159, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18429:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "18429:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18384:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18353:101:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2151, - "id": 2163, - "nodeType": "Return", - "src": "18346:108:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is refundable. This is true for darknodes\n that have been in the deregistered state for one full epoch.", - "id": 2165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefundable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2147, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18288:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18287:21:3" - }, - "returnParameters": { - "id": 2151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2150, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18330:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2149, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18330:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18329:6:3" - }, - "scope": 2390, - "src": "18266:195:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2177, - "nodeType": "Block", - "src": "18603:70:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2173, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2167, - "src": "18640:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2174, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "18653:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2172, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18620:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2171, - "id": 2176, - "nodeType": "Return", - "src": "18613:53:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the registered state.", - "id": 2178, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2167, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18555:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18555:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18554:21:3" - }, - "returnParameters": { - "id": 2171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18597:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18597:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18596:6:3" - }, - "scope": 2390, - "src": "18533:140:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "18842:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "18879:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18892:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2185, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18859:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18859:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2184, - "id": 2189, - "nodeType": "Return", - "src": "18852:54:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state last epoch.", - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInPreviousEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18793:21:3" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18836:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18836:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18835:6:3" - }, - "scope": 2390, - "src": "18757:156:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2240, - "nodeType": "Block", - "src": "19218:509:3", - "statements": [ - { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19228:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19228:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2206, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2204, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19278:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2202, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19251:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "19251:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19251:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19228:62:3" - }, - { - "assignments": [ - 2208 - ], - "declarations": [ - { - "constant": false, - "id": 2208, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19300:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19300:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2213, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19354:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2209, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19325:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "19325:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19300:66:3" - }, - { - "assignments": [ - 2215 - ], - "declarations": [ - { - "constant": false, - "id": 2215, - "name": "registered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19376:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2214, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19376:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2224, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2216, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19410:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19394:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2219, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19415:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2220, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19431:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19431:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19415:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19394:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19376:73:3" - }, - { - "assignments": [ - 2226 - ], - "declarations": [ - { - "constant": false, - "id": 2226, - "name": "notDeregistered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19459:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19459:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2235, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2227, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19482:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19500:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19482:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2230, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19505:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2231, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19522:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19522:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19505:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19482:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19459:81:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2236, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "19691:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2237, - "name": "notDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "19705:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19691:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2199, - "id": 2239, - "nodeType": "Return", - "src": "19684:36:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state for a given\n epoch.\n @param _darknodeID The ID of the darknode\n @param _epoch One of currentEpoch, previousEpoch", - "id": 2241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19148:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19148:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2195, - "name": "_epoch", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19169:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 2194, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "19169:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19147:42:3" - }, - "returnParameters": { - "id": 2199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19212:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19212:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19211:6:3" - }, - "scope": 2390, - "src": "19119:608:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2360, - "nodeType": "Block", - "src": "20170:1037:3", - "statements": [ - { - "assignments": [ - 2254 - ], - "declarations": [ - { - "constant": false, - "id": 2254, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20180:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2256, - "initialValue": { - "argumentTypes": null, - "id": 2255, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "20196:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20180:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2257, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20225:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20216:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2265, - "nodeType": "IfStatement", - "src": "20212:61:3", - "trueBody": { - "id": 2264, - "nodeType": "Block", - "src": "20228:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2260, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2261, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "20250:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20242:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "20242:20:3" - } - ] - } - }, - { - "assignments": [ - 2269 - ], - "declarations": [ - { - "constant": false, - "id": 2269, - "name": "nodes", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20283:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20283:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20283:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2273, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20322:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20308:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 2270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20312:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20312:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20308:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20283:45:3" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20388:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20400:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20388:13:3" - }, - { - "assignments": [ - 2281 - ], - "declarations": [ - { - "constant": false, - "id": 2281, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20411:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2283, - "initialValue": { - "argumentTypes": null, - "id": 2282, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "20426:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20411:21:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2284, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20446:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20462:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20454:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20454:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20446:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2296, - "nodeType": "IfStatement", - "src": "20442:69:3", - "trueBody": { - "id": 2295, - "nodeType": "Block", - "src": "20466:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2289, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20480:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "20487:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2492, - "src": "20487:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20487:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20480:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "20480:20:3" - } - ] - } - }, - { - "body": { - "id": 2356, - "nodeType": "Block", - "src": "20609:570:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2300, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20643:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20635:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20635:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20627:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2307, - "nodeType": "IfStatement", - "src": "20623:62:3", - "trueBody": { - "id": 2306, - "nodeType": "Block", - "src": "20647:38:3", - "statements": [ - { - "id": 2305, - "nodeType": "Break", - "src": "20665:5:3" - } - ] - } - }, - { - "assignments": [ - 2309 - ], - "declarations": [ - { - "constant": false, - "id": 2309, - "name": "includeNext", - "nodeType": "VariableDeclaration", - "scope": 2356, - "src": "20766:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2310, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20766:16:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2311, - "name": "_usePreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2247, - "src": "20800:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2325, - "nodeType": "Block", - "src": "20905:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2319, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20923:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2321, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20950:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2320, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "20937:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20937:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20923:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2324, - "nodeType": "ExpressionStatement", - "src": "20923:32:3" - } - ] - }, - "id": 2326, - "nodeType": "IfStatement", - "src": "20796:174:3", - "trueBody": { - "id": 2318, - "nodeType": "Block", - "src": "20819:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20837:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2314, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2313, - "name": "isRegisteredInPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "20851:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20851:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20837:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "20837:47:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20987:12:3", - "subExpression": { - "argumentTypes": null, - "id": 2327, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20988:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2338, - "nodeType": "IfStatement", - "src": "20983:100:3", - "trueBody": { - "id": 2337, - "nodeType": "Block", - "src": "21001:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2329, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2332, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2330, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21026:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21026:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21026:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21019:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2335, - "nodeType": "ExpressionStatement", - "src": "21019:23:3" - }, - { - "id": 2336, - "nodeType": "Continue", - "src": "21060:8:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2339, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21096:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2341, - "indexExpression": { - "argumentTypes": null, - "id": 2340, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21102:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21096:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2342, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21107:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21096:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2344, - "nodeType": "ExpressionStatement", - "src": "21096:15:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2348, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21143:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2346, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21132:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21132:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21132:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21125:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2351, - "nodeType": "ExpressionStatement", - "src": "21125:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2352, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21162:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21167:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21162:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "21162:6:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2297, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "20598:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2298, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20602:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2357, - "nodeType": "WhileStatement", - "src": "20591:588:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21195:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2252, - "id": 2359, - "nodeType": "Return", - "src": "21188:12:3" - } - ] - }, - "documentation": "@notice Returns a list of darknodes registered for either the current\n or the previous epoch. See `getDarknodes` for documentation on the\n parameters `_start` and `_count`.\n @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n the current epoch.", - "id": 2361, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodesFromEpochs", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2243, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20074:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20074:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20090:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2247, - "name": "_usePreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20106:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20106:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20073:56:3" - }, - "returnParameters": { - "id": 2252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20152:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2250, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20152:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20151:18:3" - }, - "scope": 2390, - "src": "20042:1165:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2388, - "nodeType": "Block", - "src": "21330:303:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2369, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21423:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2373, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "21465:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "21436:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "21436:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7435, - "src": "21436:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21436:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2366, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21388:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2606, - "src": "21388:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21388:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "21388:99:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2377, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21497:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21547:1:3", - "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": 2378, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21521:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "21521:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21521:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21497:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "21497:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21614:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2384, - "name": "LogDarknodeDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "21590:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21590:36:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2387, - "nodeType": "EmitStatement", - "src": "21585:41:3" - } - ] - }, - "documentation": "Private function called by `deregister` and `slash`", - "id": 2389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deregisterDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2363, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2389, - "src": "21301:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21301:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21300:21:3" - }, - "returnParameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [], - "src": "21330:0:3" - }, - "scope": 2390, - "src": "21273:360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 2391, - "src": "375:21260:3" - } - ], - "src": "0:21636:3" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -29795,183 +1037,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T02:30:53.697Z", - "devdoc": { - "methods": { - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_minimumBond": "The minimum bond amount that can be submitted by a Darknode.", - "_minimumEpochInterval": "The minimum number of blocks between epochs.", - "_minimumPodSize": "The minimum size of a Darknode pod.", - "_renAddress": "The address of the RenToken contract.", - "_storeAddress": "The address of the DarknodeRegistryStore contract." - } - }, - "deregister(address)": { - "params": { - "_darknodeID": "The darknode ID that will be deregistered. The caller of this method store.darknodeRegisteredAt(_darknodeID) must be" - } - }, - "getDarknodeBond(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the bond for." - } - }, - "getDarknodeOwner(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the owner for." - } - }, - "getDarknodePublicKey(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the public key for." - } - }, - "getDarknodes(address,uint256)": { - "params": { - "_count": "The number of darknodes to retrieve starting from _start. If _count is 0, all of the darknodes from _start are retrieved. If _count is more than the remaining number of registered darknodes, the rest of the list will contain 0x0s.", - "_start": "A darknode ID used as an offset for the list. If _start is 0x0, the first dark node will be used. _start won't be included it is not registered for the epoch." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "isPendingRegistration(address)": { - "params": { - "_darknodeID": "The ID of the darknode to return" - } - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "refund(address)": { - "params": { - "_darknodeID": "The darknode ID that will be refunded. The caller of this method must be the owner of this darknode." - } - }, - "register(address,bytes)": { - "params": { - "_darknodeID": "The darknode ID that will be registered.", - "_publicKey": "The public key of the darknode. It is stored to allow other darknodes and traders to encrypt messages to the trader." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "slash(address,address,address)": { - "params": { - "_challenger1": "The first of the two darknodes who submitted the challenge", - "_challenger2": "The second of the two darknodes who submitted the challenge", - "_prover": "The guilty prover whose bond is being slashed" - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "transferStoreOwnership(address)": { - "params": { - "_newOwner": "The address to transfer the ownership to." - } - }, - "updateMinimumBond(uint256)": { - "params": { - "_nextMinimumBond": "The minimum bond amount that can be submitted by a darknode." - } - }, - "updateMinimumEpochInterval(uint256)": { - "params": { - "_nextMinimumEpochInterval": "The minimum number of blocks between epochs." - } - }, - "updateMinimumPodSize(uint256)": { - "params": { - "_nextMinimumPodSize": "The minimum size of a pod." - } - }, - "updateSlasher(address)": { - "params": { - "_slasher": "The new slasher address." - } - } - } - }, - "userdoc": { - "methods": { - "claimStoreOwnership()": { - "notice": "Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another Darknode Registry." - }, - "constructor": "The contract constructor. ", - "deregister(address)": { - "notice": "Deregister a darknode. The darknode will not be deregistered until the end of the epoch. After another epoch, the bond can be refunded by calling the refund method." - }, - "epoch()": { - "notice": "Progress the epoch if it is possible to do so. This captures the current timestamp and current blockhash and overrides the current epoch." - }, - "getDarknodeBond(address)": { - "notice": "Retrieves the bond amount of a darknode in 10^-18 REN." - }, - "getDarknodeOwner(address)": { - "notice": "Retrieves the address of the account that registered a darknode." - }, - "getDarknodePublicKey(address)": { - "notice": "Retrieves the encryption public key of the darknode." - }, - "getDarknodes(address,uint256)": { - "notice": "Retrieves a list of darknodes which are registered for the current epoch." - }, - "getPreviousDarknodes(address,uint256)": { - "notice": "Retrieves a list of darknodes which were registered for the previous epoch. See `getDarknodes` for the parameter documentation." - }, - "isDeregisterable(address)": { - "notice": "Returns if a darknode can be deregistered. This is true if the darknodes is in the registered state and has not attempted to deregister yet." - }, - "isDeregistered(address)": { - "notice": "Returns if a darknode is in the deregistered state." - }, - "isPendingDeregistration(address)": { - "notice": "Returns if a darknode is in the pending deregistered state. In this state a darknode is still considered registered." - }, - "isPendingRegistration(address)": { - "notice": "Returns whether a darknode is scheduled to become registered at next epoch." - }, - "isRefundable(address)": { - "notice": "Returns if a darknode is refundable. This is true for darknodes that have been in the deregistered state for one full epoch." - }, - "isRefunded(address)": { - "notice": "Returns if a darknode is in the refunded state. This is true for darknodes that have never been registered, or darknodes that have been deregistered and refunded." - }, - "isRegistered(address)": { - "notice": "Returns if a darknode is in the registered state." - }, - "isRegisteredInPreviousEpoch(address)": { - "notice": "Returns if a darknode was in the registered state last epoch." - }, - "refund(address)": { - "notice": "Refund the bond of a deregistered darknode. This will make the darknode available for registration again. Anyone can call this function but the bond will always be refunded to the darknode owner. " - }, - "register(address,bytes)": { - "notice": "Register a darknode and transfer the bond to this contract. Before registering, the bond transfer must be approved in the REN contract. The caller must provide a public encryption key for the darknode. The darknode will remain pending registration until the next epoch. Only after this period can the darknode be deregistered. The caller of this method will be stored as the owner of the darknode. " - }, - "slash(address,address,address)": { - "notice": "Allow the DarknodeSlasher contract to slash half of a darknode's bond and deregister it. The bond is distributed as follows: 1/2 is kept by the guilty prover 1/8 is rewarded to the first challenger 1/8 is rewarded to the second challenger 1/4 becomes unassigned" - }, - "transferStoreOwnership(address)": { - "notice": "Allows the contract owner to initiate an ownership transfer of the DarknodeRegistryStore. " - }, - "updateMinimumBond(uint256)": { - "notice": "Allows the contract owner to update the minimum bond." - }, - "updateMinimumEpochInterval(uint256)": { - "notice": "Allows the contract owner to update the minimum epoch interval." - }, - "updateMinimumPodSize(uint256)": { - "notice": "Allows the contract owner to update the minimum pod size." - }, - "updateSlasher(address)": { - "notice": "Allow the contract owner to update the DarknodeSlasher contract address." - } - }, - "notice": "DarknodeRegistry is responsible for the registration and deregistration of Darknodes." - } + "updatedAt": "2019-06-26T02:30:53.697Z" } \ No newline at end of file diff --git a/build/devnet/DarknodeRegistryStore.json b/build/devnet/DarknodeRegistryStore.json index a79be95d..34545813 100644 --- a/build/devnet/DarknodeRegistryStore.json +++ b/build/devnet/DarknodeRegistryStore.json @@ -334,7245 +334,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeDeregisteredAt\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"begin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"},{\"name\":\"deregisteredAt\",\"type\":\"uint256\"}],\"name\":\"updateDarknodeDeregisteredAt\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"removeDarknode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ren\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_darknodeOwner\",\"type\":\"address\"},{\"name\":\"_bond\",\"type\":\"uint256\"},{\"name\":\"_publicKey\",\"type\":\"bytes\"},{\"name\":\"_registeredAt\",\"type\":\"uint256\"},{\"name\":\"_deregisteredAt\",\"type\":\"uint256\"}],\"name\":\"appendDarknode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"next\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeRegisteredAt\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodePublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"},{\"name\":\"decreasedBond\",\"type\":\"uint256\"}],\"name\":\"updateDarknodeBond\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_ren\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"appendDarknode(address,address,uint256,bytes,uint256,uint256)\":{\"params\":{\"_bond\":\"The darknode's bond value\",\"_darknodeID\":\"The darknode's ID.\",\"_darknodeOwner\":\"The darknode's owner's address\",\"_deregisteredAt\":\"The time stamp when the darknode is deregistered.\",\"_publicKey\":\"The darknode's public key\",\"_registeredAt\":\"The time stamp when the darknode is registered.\"}},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_ren\":\"The address of the RenToken contract.\"}},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"appendDarknode(address,address,uint256,bytes,uint256,uint256)\":{\"notice\":\"Instantiates a darknode and appends it to the darknodes linked-list. \"},\"begin()\":{\"notice\":\"Returns the address of the first darknode in the store\"},\"constructor\":\"The contract constructor. \",\"darknodeBond(address)\":{\"notice\":\"Returns the bond of a given darknode.\"},\"darknodeDeregisteredAt(address)\":{\"notice\":\"Returns the deregistration time of a given darknode.\"},\"darknodeOwner(address)\":{\"notice\":\"Returns the owner of a given darknode.\"},\"darknodePublicKey(address)\":{\"notice\":\"Returns the encryption public key of a given darknode.\"},\"darknodeRegisteredAt(address)\":{\"notice\":\"Returns the registration time of a given darknode.\"},\"next(address)\":{\"notice\":\"Returns the address of the next darknode in the store after the given address.\"},\"removeDarknode(address)\":{\"notice\":\"Removes a darknode from the store and transfers its bond to the owner of this contract.\"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"updateDarknodeBond(address,uint256)\":{\"notice\":\"Updates the bond of a darknode. The new bond must be smaller than the previous bond of the darknode.\"},\"updateDarknodeDeregisteredAt(address,uint256)\":{\"notice\":\"Updates the deregistration timestamp of a darknode.\"}},\"notice\":\"This contract stores data and funds for the DarknodeRegistry contract. The data / fund logic and storage have been separated to improve upgradability.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":\"DarknodeRegistryStore\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620015b0380380620015b0833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b5050602090910151600180546001600160a01b0319163317908190556040519294509092506001600160a01b0316906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38151620000eb90600290602085019062000113565b50600580546001600160a01b0319166001600160a01b039290921691909117905550620001b8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015657805160ff191683800117855562000186565b8280016001018555821562000186579182015b828111156200018657825182559160200191906001019062000169565b506200019492915062000198565b5090565b620001b591905b808211156200019457600081556001016200019f565b90565b6113e880620001c86000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063a3078815116100a2578063e2d7c64c11610071578063e2d7c64c1461030f578063ee594a5014610335578063f2fde38b146103d0578063fbc402fc146103f6578063ffa1ad741461042257610116565b8063a307881514610207578063a85ef5791461022d578063ab73e316146102c3578063cad41357146102e957610116565b80634e71e0c8116100e95780634e71e0c8146101cb578063715018a6146101d35780638a9b4067146101db5780638da5cb5b146101e35780638f32d59b146101eb57610116565b806301930b6e1461011b5780631bce6ff3146101535780633ac39d4b1461017757806341b44392146101a5575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b031661042a565b60408051918252519081900360200190f35b61015b610496565b604080516001600160a01b039092168252519081900360200190f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104f2565b005b6101a3600480360360208110156101bb57600080fd5b50356001600160a01b031661055c565b6101a36106ee565b6101a36107b5565b61015b610849565b61015b610858565b6101f3610867565b604080519115158252519081900360200190f35b61015b6004803603602081101561021d57600080fd5b50356001600160a01b0316610878565b6101a3600480360360c081101561024357600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561027e57600080fd5b82018360208201111561029057600080fd5b803590602001918460018302840111640100000000831117156102b257600080fd5b9193509150803590602001356108e3565b61015b600480360360208110156102d957600080fd5b50356001600160a01b0316610a1d565b610141600480360360208110156102ff57600080fd5b50356001600160a01b0316610a7a565b6101416004803603602081101561032557600080fd5b50356001600160a01b0316610ae5565b61035b6004803603602081101561034b57600080fd5b50356001600160a01b0316610b50565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039557818101518382015260200161037d565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a3600480360360208110156103e657600080fd5b50356001600160a01b0316610c48565b6101a36004803603604081101561040c57600080fd5b506001600160a01b038135169060200135610cb4565b61035b610e85565b6000610434610867565b6104765760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152600360208190526040909120015490565b60006104a0610867565b6104e25760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6104ec6004610f10565b90505b90565b6104fa610867565b61053c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0390911660009081526003602081905260409091200155565b610564610867565b6105a65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600360208190526040822060018101805482546001600160a01b0319168355908490556002820184905591810183905590916105f46004830182611285565b5050610601600483610f2f565b6005546001600160a01b031663a9059cbb61061a610858565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b50516106ea5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146107505760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6107bd610867565b6107ff5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6005546001600160a01b031681565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b6000610882610867565b6108c45760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b039081166000908152600360205260409020541690565b6108eb610867565b61092d5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6109356112cc565b6040518060a00160405280886001600160a01b0316815260200187815260200184815260200183815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160a01b038b8116825260036020818152604093849020865181546001600160a01b0319169416939093178355858101516001840155928501516002830155606085015190820155608084015180519495508594919350610a04926004850192910190611304565b50905050610a13600489611011565b5050505050505050565b6000610a27610867565b610a695760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b610a74600483611024565b92915050565b6000610a84610867565b610ac65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206001015490565b6000610aef610867565b610b315760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206002015490565b6060610b5a610867565b610b9c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610c3c5780601f10610c1157610100808354040283529160200191610c3c565b820191906000526020600020905b815481529060010190602001808311610c1f57829003601f168201915b50505050509050919050565b610c50610867565b610c925760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cbc610867565b610cfe5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902060010154808210610d715760408051600160e51b62461bcd02815260206004820152601260248201527f626f6e64206e6f74206465637265617365640000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526003602052604090206001018390556005541663a9059cbb610da1610858565b610db1848663ffffffff61109916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b5051610e805760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610f085780601f10610edd57610100808354040283529160200191610f08565b820191906000526020600020905b815481529060010190602001808311610eeb57829003601f168201915b505050505081565b600080805260209190915260409020600101546001600160a01b031690565b610f3982826110f9565b610f7e5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b038116610f91576106ea565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b6106ea8261101e84611118565b8361113a565b600061103083836110f9565b6110755760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6000828211156110f35760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03166000908152602091909152604090205460ff1690565b60008080526020829052604090205461010090046001600160a01b0316919050565b61114483826110f9565b156111995760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111a383836110f9565b806111b557506001600160a01b038216155b6111fa5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff1916179055565b50805460018160011615610100020316600290046000825580601f106112ab57506112c9565b601f0160209004906000526020600020908101906112c99190611382565b50565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134557805160ff1916838001178555611372565b82800160010185558215611372579182015b82811115611372578251825591602001919060010190611357565b5061137e929150611382565b5090565b6104ef91905b8082111561137e576000815560010161138856fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820b02bc8a49b5e057a64ff74c79ba9139860c4d6b30f27acfe35085d38de919f390029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063a3078815116100a2578063e2d7c64c11610071578063e2d7c64c1461030f578063ee594a5014610335578063f2fde38b146103d0578063fbc402fc146103f6578063ffa1ad741461042257610116565b8063a307881514610207578063a85ef5791461022d578063ab73e316146102c3578063cad41357146102e957610116565b80634e71e0c8116100e95780634e71e0c8146101cb578063715018a6146101d35780638a9b4067146101db5780638da5cb5b146101e35780638f32d59b146101eb57610116565b806301930b6e1461011b5780631bce6ff3146101535780633ac39d4b1461017757806341b44392146101a5575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b031661042a565b60408051918252519081900360200190f35b61015b610496565b604080516001600160a01b039092168252519081900360200190f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104f2565b005b6101a3600480360360208110156101bb57600080fd5b50356001600160a01b031661055c565b6101a36106ee565b6101a36107b5565b61015b610849565b61015b610858565b6101f3610867565b604080519115158252519081900360200190f35b61015b6004803603602081101561021d57600080fd5b50356001600160a01b0316610878565b6101a3600480360360c081101561024357600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561027e57600080fd5b82018360208201111561029057600080fd5b803590602001918460018302840111640100000000831117156102b257600080fd5b9193509150803590602001356108e3565b61015b600480360360208110156102d957600080fd5b50356001600160a01b0316610a1d565b610141600480360360208110156102ff57600080fd5b50356001600160a01b0316610a7a565b6101416004803603602081101561032557600080fd5b50356001600160a01b0316610ae5565b61035b6004803603602081101561034b57600080fd5b50356001600160a01b0316610b50565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039557818101518382015260200161037d565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a3600480360360208110156103e657600080fd5b50356001600160a01b0316610c48565b6101a36004803603604081101561040c57600080fd5b506001600160a01b038135169060200135610cb4565b61035b610e85565b6000610434610867565b6104765760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152600360208190526040909120015490565b60006104a0610867565b6104e25760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6104ec6004610f10565b90505b90565b6104fa610867565b61053c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0390911660009081526003602081905260409091200155565b610564610867565b6105a65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600360208190526040822060018101805482546001600160a01b0319168355908490556002820184905591810183905590916105f46004830182611285565b5050610601600483610f2f565b6005546001600160a01b031663a9059cbb61061a610858565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b50516106ea5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146107505760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6107bd610867565b6107ff5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6005546001600160a01b031681565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b6000610882610867565b6108c45760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b039081166000908152600360205260409020541690565b6108eb610867565b61092d5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6109356112cc565b6040518060a00160405280886001600160a01b0316815260200187815260200184815260200183815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160a01b038b8116825260036020818152604093849020865181546001600160a01b0319169416939093178355858101516001840155928501516002830155606085015190820155608084015180519495508594919350610a04926004850192910190611304565b50905050610a13600489611011565b5050505050505050565b6000610a27610867565b610a695760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b610a74600483611024565b92915050565b6000610a84610867565b610ac65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206001015490565b6000610aef610867565b610b315760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206002015490565b6060610b5a610867565b610b9c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610c3c5780601f10610c1157610100808354040283529160200191610c3c565b820191906000526020600020905b815481529060010190602001808311610c1f57829003601f168201915b50505050509050919050565b610c50610867565b610c925760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cbc610867565b610cfe5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902060010154808210610d715760408051600160e51b62461bcd02815260206004820152601260248201527f626f6e64206e6f74206465637265617365640000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526003602052604090206001018390556005541663a9059cbb610da1610858565b610db1848663ffffffff61109916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b5051610e805760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610f085780601f10610edd57610100808354040283529160200191610f08565b820191906000526020600020905b815481529060010190602001808311610eeb57829003601f168201915b505050505081565b600080805260209190915260409020600101546001600160a01b031690565b610f3982826110f9565b610f7e5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b038116610f91576106ea565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b6106ea8261101e84611118565b8361113a565b600061103083836110f9565b6110755760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6000828211156110f35760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03166000908152602091909152604090205460ff1690565b60008080526020829052604090205461010090046001600160a01b0316919050565b61114483826110f9565b156111995760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111a383836110f9565b806111b557506001600160a01b038216155b6111fa5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff1916179055565b50805460018160011615610100020316600290046000825580601f106112ab57506112c9565b601f0160209004906000526020600020908101906112c99190611382565b50565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134557805160ff1916838001178555611372565b82800160010185558215611372579182015b82811115611372578251825591602001919060010190611357565b5061137e929150611382565b5090565b6104ef91905b8082111561137e576000815560010161138856fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820b02bc8a49b5e057a64ff74c79ba9139860c4d6b30f27acfe35085d38de919f390029", - "sourceMap": "368:5752:4:-;;;2200:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:135:4;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:135:4;;;;;;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;;2200:135:4;;;;;528:6:12;:19;;-1:-1:-1;;;;;;528:19:12;537:10;528:19;;;;;2200:135:4;562:40:12;2200:135:4;;-1:-1:-1;2200:135:4;;-1:-1:-1;;;;;;595:6:12;;528;;562:40;;528:6;;562:40;2290:18:4;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;2318:3:4;:10;;-1:-1:-1;;;;;;2318:10:4;-1:-1:-1;;;;;2318:10:4;;;;;;;;;;-1:-1:-1;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:5752:4;;;-1:-1:-1;368:5752:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "368:5752:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5724:161:4;-1:-1:-1;;;;;5724:161:4;;:::i;:::-;;;;;;;;;;;;;;;;3469:109;;;:::i;:::-;;;;-1:-1:-1;;;;;3469:109:4;;;;;;;;;;;;;;4828:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4828:178:4;;;;;;;;:::i;:::-;;3942:293;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3942:293:4;-1:-1:-1;;;;;3942:293:4;;:::i;2166:177:12:-;;;:::i;1688:137::-;;;:::i;2002:19:4:-;;;:::i;672:77:12:-;;;:::i;1244:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;5067:151:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5067:151:4;-1:-1:-1;;;;;5067:151:4;;:::i;2806:586::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2806:586:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2806:586:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2806:586:4;;;;;;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;2806:586:4;;-1:-1:-1;2806:586:4;-1:-1:-1;2806:586:4;;;;;;;:::i;3687:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3687:137:4;-1:-1:-1;;;;;3687:137:4;;:::i;5278:141::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5278:141:4;-1:-1:-1;;;;;5278:141:4;;:::i;5492:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5492:157:4;-1:-1:-1;;;;;5492:157:4;;:::i;5962:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5962:156:4;-1:-1:-1;;;;;5962:156:4;;:::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;5962:156:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:101:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:12;-1:-1:-1;;;;;1975:101:12;;:::i;4366:388:4:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4366:388:4;;;;;;;;:::i;451:21::-;;;:::i;5724:161::-;5809:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5835:28:4;;;;;:16;:28;;;;;;;;:43;;;5724:161::o;3469:109::-;3518:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3544:27:4;3561:9;3544:16;:27::i;:::-;3537:34;;923:1:12;3469:109:4;:::o;4828:178::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;4939:28:4;;;;;;;:16;:28;;;;;;;;:43;:60;4828:178::o;3942:293::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;4030:28:4;;4015:12;4030:28;;;:16;:28;;;;;;;:33;;;;;4073:35;;-1:-1:-1;;;;;;4073:35:4;;;;;;;;;;;;;;;;;;;4030:33;;4073:35;;;;4015:12;4073:35;:::i;:::-;;;4118:40;4136:9;4147:10;4118:17;:40::i;:::-;4176:3;;-1:-1:-1;;;;;4176:3:4;:12;4189:7;:5;:7::i;:::-;4198:4;4176:27;;;;;;;;;;;;;-1:-1:-1;;;;;4176:27:4;-1:-1:-1;;;;;4176:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4176:27:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4176:27:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4176:27:4;4168:60;;;;;-1:-1:-1;;;;;4168:60:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:12;3942:293:4;:::o;2166:177:12:-;1091:13;;-1:-1:-1;;;;;1091:13:12;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:12;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:12;;;-1:-1:-1;;;;;2289:13:12;;2280:22;;;;2310:26;;;2166:177::o;1688:137::-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:12;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:12;;;1688:137::o;2002:19:4:-;;;-1:-1:-1;;;;;2002:19:4;;:::o;672:77:12:-;736:6;;-1:-1:-1;;;;;736:6:12;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:12;1307:10;:20;;1244:90::o;5067:151:4:-;5143:15;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5177:28:4;;;;;;;:16;:28;;;;;:34;;;5067:151::o;2806:586::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3056:24:4;;:::i;:::-;3083:201;;;;;;;;3113:14;-1:-1:-1;;;;;3083:201:4;;;;;3147:5;3083:201;;;;3215:13;3083:201;;;;3258:15;3083:201;;;;3177:10;;3083:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;3083:201:4;;;;-1:-1:-1;;;;;;;3294:29:4;;;;;:16;:29;;;;;;;;;:40;;;;-1:-1:-1;;;;;;3294:40:4;;;;;;;;;;;;;-1:-1:-1;3294:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3294:40:4;;:29;;-1:-1:-1;3294:40:4;;;;;;;;;;:::i;:::-;;;;;3344:41;3362:9;3373:11;3344:17;:41::i;:::-;923:1:12;2806:586:4;;;;;;;:::o;3687:137::-;3753:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3779:38:4;3795:9;3806:10;3779:15;:38::i;:::-;3772:45;3687:137;-1:-1:-1;;3687:137:4:o;5278:141::-;5353:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5379:28:4;;;;;:16;:28;;;;;:33;;;;5278:141::o;5492:157::-;5575:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5601:28:4;;;;;:16;:28;;;;;:41;;;;5492:157::o;5962:156::-;6042:12;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:28:4;;;;;;:16;:28;;;;;;;;;:38;;6066:45;;;;;;-1:-1:-1;;6066:45:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:38;;6066:45;;6073:38;6066:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5962:156;;;:::o;1975:101:12:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:12;-1:-1:-1;;;;;2045:24:12;;;;;;;;;;1975:101::o;4366:388:4:-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;4489:28:4;;4466:20;4489:28;;;:16;:28;;;;;:33;;;4540:28;;;4532:59;;;;;-1:-1:-1;;;;;4532:59:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4601:28:4;;;;;;;:16;:28;;;;;:33;;:49;;;4668:3;;;:12;4681:7;:5;:7::i;:::-;4690:31;:12;4707:13;4690:31;:16;:31;:::i;:::-;4668:54;;;;;;;;;;;;;-1:-1:-1;;;;;4668:54:4;-1:-1:-1;;;;;4668:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4668:54:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4668:54:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4668:54:4;4660:87;;;;;-1:-1:-1;;;;;4660:87:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:12;4366:388:4;;:::o;451:21::-;;;;;;;;;;;;;;-1:-1:-1;;451:21:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4696:110:15:-;4753:7;4779:15;;;;;;;;;;;:20;;;-1:-1:-1;;;;;4779:20:15;;4696:110::o;2757:514::-;2833:20;2842:4;2848;2833:8;:20::i;:::-;2825:44;;;;;-1:-1:-1;;;;;2825:44:15;;;;;;;;;;;;-1:-1:-1;;;;;2825:44:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;2883:12:15;;2879:49;;2911:7;;2879:49;-1:-1:-1;;;;;2949:15:15;;;2937:9;2949:15;;;;;;;;;;;;:24;;;2995:20;;;;;2949:24;;;;;;;3026:12;;;;;;:17;;;:21;;2995:20;;;;-1:-1:-1;;;;;;3026:21:15;;;;;;;;3057:12;;;;;;:25;;-1:-1:-1;;;;;;3057:25:15;;;;;;;;3202:15;;;;:30;;-1:-1:-1;;;;;;3242:22:15;;;;;;;;2757:514::o;3808:163::-;3930:34;3942:4;3948:9;3952:4;3948:3;:9::i;:::-;3959:4;3930:11;:34::i;5148:177::-;5218:7;5245:20;5254:4;5260;5245:8;:20::i;:::-;5237:44;;;;;-1:-1:-1;;;;;5237:44:15;;;;;;;;;;;;-1:-1:-1;;;;;5237:44:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5298:15:15;;;:9;:15;;;;;;;;;;;;:20;;;;;5148:177::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;4334:126:15:-;-1:-1:-1;;;;;4431:15:15;4408:4;4431:15;;;;;;;;;;;:22;;;;4334:126::o;5030:112::-;5085:7;5111:15;;;;;;;;;;:24;;;;-1:-1:-1;;;;;5111:24:15;5030:112;;;:::o;1906:541::-;2007:23;2016:4;2022:7;2007:8;:23::i;:::-;2006:24;1998:52;;;;;-1:-1:-1;;;;;1998:52:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:22;2077:4;2083:6;2068:8;:22::i;:::-;:40;;;-1:-1:-1;;;;;;2094:14:15;;;2068:40;2060:64;;;;;-1:-1:-1;;;;;2060:64:15;;;;;;;;;;;;-1:-1:-1;;;;;2060:64:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;2208:17:15;;;2196:9;2208:17;;;;;;;;;;;;:22;;;;;;2241:18;;;;;;;;;:36;;-1:-1:-1;;;;;;2241:36:15;;;2208:22;2241:36;;;;;;2287:23;;;:27;;2208:22;;;;-1:-1:-1;;;;;;2287:27:15;;;;;;;;2324:32;;;;;;;;;;2366:12;;;;;;:31;;;;;;;;;;;;;;;2408:18;;;;:32;;-1:-1:-1;;2408:32:15;;;;1906:541::o;368:5752:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:5752:4;;;-1:-1:-1;368:5752:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../libraries/Claimable.sol\";\nimport \"../libraries/LinkedList.sol\";\nimport \"../RenToken/RenToken.sol\";\n\n/// @notice This contract stores data and funds for the DarknodeRegistry\n/// contract. The data / fund logic and storage have been separated to improve\n/// upgradability.\ncontract DarknodeRegistryStore is Claimable {\n using SafeMath for uint256;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice Darknodes are stored in the darknode struct. The owner is the\n /// address that registered the darknode, the bond is the amount of REN that\n /// was transferred during registration, and the public key is the\n /// encryption key that should be used when sending sensitive information to\n /// the darknode.\n struct Darknode {\n // The owner of a Darknode is the address that called the register\n // function. The owner is the only address that is allowed to\n // deregister the Darknode, unless the Darknode is slashed for\n // malicious behavior.\n address payable owner;\n\n // The bond is the amount of REN submitted as a bond by the Darknode.\n // This amount is reduced when the Darknode is slashed for malicious\n // behavior.\n uint256 bond;\n\n // The block number at which the Darknode is considered registered.\n uint256 registeredAt;\n\n // The block number at which the Darknode is considered deregistered.\n uint256 deregisteredAt;\n\n // The public key used by this Darknode for encrypting sensitive data\n // off chain. It is assumed that the Darknode has access to the\n // respective private key, and that there is an agreement on the format\n // of the public key.\n bytes publicKey;\n }\n\n /// Registry data.\n mapping(address => Darknode) private darknodeRegistry;\n LinkedList.List private darknodes;\n\n // RenToken.\n RenToken public ren;\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _ren The address of the RenToken contract.\n constructor(\n string memory _VERSION,\n RenToken _ren\n ) public {\n VERSION = _VERSION;\n ren = _ren;\n }\n\n /// @notice Instantiates a darknode and appends it to the darknodes\n /// linked-list.\n ///\n /// @param _darknodeID The darknode's ID.\n /// @param _darknodeOwner The darknode's owner's address\n /// @param _bond The darknode's bond value\n /// @param _publicKey The darknode's public key\n /// @param _registeredAt The time stamp when the darknode is registered.\n /// @param _deregisteredAt The time stamp when the darknode is deregistered.\n function appendDarknode(\n address _darknodeID,\n address payable _darknodeOwner,\n uint256 _bond,\n bytes calldata _publicKey,\n uint256 _registeredAt,\n uint256 _deregisteredAt\n ) external onlyOwner {\n Darknode memory darknode = Darknode({\n owner: _darknodeOwner,\n bond: _bond,\n publicKey: _publicKey,\n registeredAt: _registeredAt,\n deregisteredAt: _deregisteredAt\n });\n darknodeRegistry[_darknodeID] = darknode;\n LinkedList.append(darknodes, _darknodeID);\n }\n\n /// @notice Returns the address of the first darknode in the store\n function begin() external view onlyOwner returns(address) {\n return LinkedList.begin(darknodes);\n }\n\n /// @notice Returns the address of the next darknode in the store after the\n /// given address.\n function next(address darknodeID) external view onlyOwner returns(address) {\n return LinkedList.next(darknodes, darknodeID);\n }\n\n /// @notice Removes a darknode from the store and transfers its bond to the\n /// owner of this contract.\n function removeDarknode(address darknodeID) external onlyOwner {\n uint256 bond = darknodeRegistry[darknodeID].bond;\n delete darknodeRegistry[darknodeID];\n LinkedList.remove(darknodes, darknodeID);\n require(ren.transfer(owner(), bond), \"bond transfer failed\");\n }\n\n /// @notice Updates the bond of a darknode. The new bond must be smaller\n /// than the previous bond of the darknode.\n function updateDarknodeBond(address darknodeID, uint256 decreasedBond) external onlyOwner {\n uint256 previousBond = darknodeRegistry[darknodeID].bond;\n require(decreasedBond < previousBond, \"bond not decreased\");\n darknodeRegistry[darknodeID].bond = decreasedBond;\n require(ren.transfer(owner(), previousBond.sub(decreasedBond)), \"bond transfer failed\");\n }\n\n /// @notice Updates the deregistration timestamp of a darknode.\n function updateDarknodeDeregisteredAt(address darknodeID, uint256 deregisteredAt) external onlyOwner {\n darknodeRegistry[darknodeID].deregisteredAt = deregisteredAt;\n }\n\n /// @notice Returns the owner of a given darknode.\n function darknodeOwner(address darknodeID) external view onlyOwner returns (address payable) {\n return darknodeRegistry[darknodeID].owner;\n }\n\n /// @notice Returns the bond of a given darknode.\n function darknodeBond(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].bond;\n }\n\n /// @notice Returns the registration time of a given darknode.\n function darknodeRegisteredAt(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].registeredAt;\n }\n\n /// @notice Returns the deregistration time of a given darknode.\n function darknodeDeregisteredAt(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].deregisteredAt;\n }\n\n /// @notice Returns the encryption public key of a given darknode.\n function darknodePublicKey(address darknodeID) external view onlyOwner returns (bytes memory) {\n return darknodeRegistry[darknodeID].publicKey;\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "exportedSymbols": { - "DarknodeRegistryStore": [ - 2682 - ] - }, - "id": 2683, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2392, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2393, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 7542, - "src": "25:59:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2394, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 4464, - "src": "86:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 2395, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 5241, - "src": "123:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 2808, - "src": "161:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2397, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4463, - "src": "402:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4463", - "typeString": "contract Claimable" - } - }, - "id": 2398, - "nodeType": "InheritanceSpecifier", - "src": "402:9:4" - } - ], - "contractDependencies": [ - 4463 - ], - "contractKind": "contract", - "documentation": "@notice This contract stores data and funds for the DarknodeRegistry\n contract. The data / fund logic and storage have been separated to improve\n upgradability.", - "fullyImplemented": true, - "id": 2682, - "linearizedBaseContracts": [ - 2682, - 4463 - ], - "name": "DarknodeRegistryStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2401, - "libraryName": { - "contractScope": null, - "id": 2399, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "424:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:4", - "typeName": { - "id": 2400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2403, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "451:21:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistryStore.Darknode", - "id": 2414, - "members": [ - { - "constant": false, - "id": 2405, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1126:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1334:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1433:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1542:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "publicKey", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1835:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1835:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Darknode", - "nodeType": "StructDefinition", - "scope": 2682, - "src": "853:1004:4", - "visibility": "public" - }, - { - "constant": false, - "id": 2418, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1886:53:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "typeName": { - "id": 2417, - "keyType": { - "id": 2415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1894:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1886:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "valueType": { - "contractScope": null, - "id": 2416, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "1905:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2420, - "name": "darknodes", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1945:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 2419, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4836, - "src": "1945:15:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2422, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "2002:19:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2421, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2002:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "2280:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2429, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "2290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2430, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2424, - "src": "2300:8:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 2432, - "nodeType": "ExpressionStatement", - "src": "2290:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2433, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "2318:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2434, - "name": "_ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2324:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "2318:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "2318:10:4" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _ren The address of the RenToken contract.", - "id": 2438, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2221:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "name": "_ren", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2253:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2425, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2211:61:4" - }, - "returnParameters": { - "id": 2428, - "nodeType": "ParameterList", - "parameters": [], - "src": "2280:0:4" - }, - "scope": 2682, - "src": "2200:135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2478, - "nodeType": "Block", - "src": "3046:346:4", - "statements": [ - { - "assignments": [ - 2456 - ], - "declarations": [ - { - "constant": false, - "id": 2456, - "name": "darknode", - "nodeType": "VariableDeclaration", - "scope": 2478, - "src": "3056:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - }, - "typeName": { - "contractScope": null, - "id": 2455, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "3056:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2464, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "_darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "3113:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2459, - "name": "_bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2444, - "src": "3147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2460, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2446, - "src": "3177:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 2461, - "name": "_registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "3215:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2462, - "name": "_deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2450, - "src": "3258:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2457, - "name": "Darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "3083:8:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Darknode_$2414_storage_ptr_$", - "typeString": "type(struct DarknodeRegistryStore.Darknode storage pointer)" - } - }, - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "owner", - "bond", - "publicKey", - "registeredAt", - "deregisteredAt" - ], - "nodeType": "FunctionCall", - "src": "3083:201:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:228:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3294:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3311:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3294:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2468, - "name": "darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2456, - "src": "3326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "src": "3294:40:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "3294:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3373:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2471, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "3344:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 5107, - "src": "3344:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4836_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3344:41:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2477, - "nodeType": "ExpressionStatement", - "src": "3344:41:4" - } - ] - }, - "documentation": "@notice Instantiates a darknode and appends it to the darknodes\n linked-list.\n\n /// @param _darknodeID The darknode's ID.\n @param _darknodeOwner The darknode's owner's address\n @param _bond The darknode's bond value\n @param _publicKey The darknode's public key\n @param _registeredAt The time stamp when the darknode is registered.\n @param _deregisteredAt The time stamp when the darknode is deregistered.", - "id": 2479, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2453, - "modifierName": { - "argumentTypes": null, - "id": 2452, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3036:9:4" - } - ], - "name": "appendDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2839:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2868:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2868:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2908:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2931:25:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2931:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2448, - "name": "_registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2966:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2966:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2450, - "name": "_deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2997:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2449, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:197:4" - }, - "returnParameters": { - "id": 2454, - "nodeType": "ParameterList", - "parameters": [], - "src": "3046:0:4" - }, - "scope": 2682, - "src": "2806:586:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2491, - "nodeType": "Block", - "src": "3527:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2488, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 2486, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "3544:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5177, - "src": "3544:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4836_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3544:27:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2485, - "id": 2490, - "nodeType": "Return", - "src": "3537:34:4" - } - ] - }, - "documentation": "@notice Returns the address of the first darknode in the store", - "id": 2492, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2482, - "modifierName": { - "argumentTypes": null, - "id": 2481, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3500:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3500:9:4" - } - ], - "name": "begin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2480, - "nodeType": "ParameterList", - "parameters": [], - "src": "3483:2:4" - }, - "returnParameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2492, - "src": "3518:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:9:4" - }, - "scope": 2682, - "src": "3469:109:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2507, - "nodeType": "Block", - "src": "3762:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2503, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3795:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2504, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3806:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "3779:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5215, - "src": "3779:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4836_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3779:38:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2500, - "id": 2506, - "nodeType": "Return", - "src": "3772:45:4" - } - ] - }, - "documentation": "@notice Returns the address of the next darknode in the store after the\n given address.", - "id": 2508, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2497, - "modifierName": { - "argumentTypes": null, - "id": 2496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3735:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3735:9:4" - } - ], - "name": "next", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3701:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3700:20:4" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2499, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3753:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3753:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:9:4" - }, - "scope": 2682, - "src": "3687:137:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2544, - "nodeType": "Block", - "src": "4005:230:4", - "statements": [ - { - "assignments": [ - 2516 - ], - "declarations": [ - { - "constant": false, - "id": 2516, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2544, - "src": "4015:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2521, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2517, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4030:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2519, - "indexExpression": { - "argumentTypes": null, - "id": 2518, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4047:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4030:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4030:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4015:48:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4073:35:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2522, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4080:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2524, - "indexExpression": { - "argumentTypes": null, - "id": 2523, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4097:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4080:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "4073:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2530, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "4136:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2531, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4147:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "4118:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 5075, - "src": "4118:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4836_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:40:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "4118:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4377, - "src": "4189:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2539, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "4198:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4176:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "4176:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4176:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4205:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4168:60:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2543, - "nodeType": "ExpressionStatement", - "src": "4168:60:4" - } - ] - }, - "documentation": "@notice Removes a darknode from the store and transfers its bond to the\n owner of this contract.", - "id": 2545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2513, - "modifierName": { - "argumentTypes": null, - "id": 2512, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3995:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3995:9:4" - } - ], - "name": "removeDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2510, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2545, - "src": "3966:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3965:20:4" - }, - "returnParameters": { - "id": 2514, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:4" - }, - "scope": 2682, - "src": "3942:293:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2588, - "nodeType": "Block", - "src": "4456:298:4", - "statements": [ - { - "assignments": [ - 2555 - ], - "declarations": [ - { - "constant": false, - "id": 2555, - "name": "previousBond", - "nodeType": "VariableDeclaration", - "scope": 2588, - "src": "4466:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4466:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4489:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4506:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4489:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4489:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4466:56:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2562, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4540:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2563, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4556:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4540:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64206e6f7420646563726561736564", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4570:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - }, - "value": "bond not decreased" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - } - ], - "id": 2561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:59:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2567, - "nodeType": "ExpressionStatement", - "src": "4532:59:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4601:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2572, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4637:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4601:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "4601:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2578, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4377, - "src": "4681:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4681:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4707:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2580, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4690:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "4690:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4690:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2576, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4668:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "4668:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4668:54:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4724:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4660:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4660:87:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "4660:87:4" - } - ] - }, - "documentation": "@notice Updates the bond of a darknode. The new bond must be smaller\n than the previous bond of the darknode.", - "id": 2589, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2552, - "modifierName": { - "argumentTypes": null, - "id": 2551, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4446:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4446:9:4" - } - ], - "name": "updateDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2547, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4394:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4394:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2549, - "name": "decreasedBond", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4414:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4414:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4393:43:4" - }, - "returnParameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "4456:0:4" - }, - "scope": 2682, - "src": "4366:388:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2605, - "nodeType": "Block", - "src": "4929:77:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2598, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4939:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2600, - "indexExpression": { - "argumentTypes": null, - "id": 2599, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "4956:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "4939:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2602, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "4985:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4939:60:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "4939:60:4" - } - ] - }, - "documentation": "@notice Updates the deregistration timestamp of a darknode.", - "id": 2606, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2596, - "modifierName": { - "argumentTypes": null, - "id": 2595, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4919:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4919:9:4" - } - ], - "name": "updateDarknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2591, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4866:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4886:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4886:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4865:44:4" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [], - "src": "4929:0:4" - }, - "scope": 2682, - "src": "4828:178:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5160:58:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2615, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5177:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2617, - "indexExpression": { - "argumentTypes": null, - "id": 2616, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2608, - "src": "5194:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5177:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2405, - "src": "5177:34:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2614, - "id": 2619, - "nodeType": "Return", - "src": "5170:41:4" - } - ] - }, - "documentation": "@notice Returns the owner of a given darknode.", - "id": 2621, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2611, - "modifierName": { - "argumentTypes": null, - "id": 2610, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5124:9:4" - } - ], - "name": "darknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2608, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5090:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5089:20:4" - }, - "returnParameters": { - "id": 2614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2613, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5143:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5143:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5142:17:4" - }, - "scope": 2682, - "src": "5067:151:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2635, - "nodeType": "Block", - "src": "5362:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2630, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5379:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2632, - "indexExpression": { - "argumentTypes": null, - "id": 2631, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5379:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "5379:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2629, - "id": 2634, - "nodeType": "Return", - "src": "5372:40:4" - } - ] - }, - "documentation": "@notice Returns the bond of a given darknode.", - "id": 2636, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2626, - "modifierName": { - "argumentTypes": null, - "id": 2625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5334:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:9:4" - } - ], - "name": "darknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5300:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5299:20:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5353:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5353:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:9:4" - }, - "scope": 2682, - "src": "5278:141:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "5584:65:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2645, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2647, - "indexExpression": { - "argumentTypes": null, - "id": 2646, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2638, - "src": "5618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2409, - "src": "5601:41:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2644, - "id": 2649, - "nodeType": "Return", - "src": "5594:48:4" - } - ] - }, - "documentation": "@notice Returns the registration time of a given darknode.", - "id": 2651, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2641, - "modifierName": { - "argumentTypes": null, - "id": 2640, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5556:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:9:4" - } - ], - "name": "darknodeRegisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5522:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5521:20:4" - }, - "returnParameters": { - "id": 2644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5575:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5574:9:4" - }, - "scope": 2682, - "src": "5492:157:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "5818:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2660, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5835:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2662, - "indexExpression": { - "argumentTypes": null, - "id": 2661, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "5852:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5835:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "5835:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2659, - "id": 2664, - "nodeType": "Return", - "src": "5828:50:4" - } - ] - }, - "documentation": "@notice Returns the deregistration time of a given darknode.", - "id": 2666, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5790:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5790:9:4" - } - ], - "name": "darknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5756:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5756:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:20:4" - }, - "returnParameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5809:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5808:9:4" - }, - "scope": 2682, - "src": "5724:161:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2680, - "nodeType": "Block", - "src": "6056:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2675, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "6073:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2677, - "indexExpression": { - "argumentTypes": null, - "id": 2676, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6090:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6073:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "publicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2413, - "src": "6073:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 2674, - "id": 2679, - "nodeType": "Return", - "src": "6066:45:4" - } - ] - }, - "documentation": "@notice Returns the encryption public key of a given darknode.", - "id": 2681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2671, - "modifierName": { - "argumentTypes": null, - "id": 2670, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "6023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6023:9:4" - } - ], - "name": "darknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "5989:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5988:20:4" - }, - "returnParameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "6042:12:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2672, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6041:14:4" - }, - "scope": 2682, - "src": "5962:156:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2683, - "src": "368:5752:4" - } - ], - "src": "0:6120:4" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "exportedSymbols": { - "DarknodeRegistryStore": [ - 2682 - ] - }, - "id": 2683, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2392, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2393, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 7542, - "src": "25:59:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2394, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 4464, - "src": "86:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 2395, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 5241, - "src": "123:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 2808, - "src": "161:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2397, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4463, - "src": "402:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4463", - "typeString": "contract Claimable" - } - }, - "id": 2398, - "nodeType": "InheritanceSpecifier", - "src": "402:9:4" - } - ], - "contractDependencies": [ - 4463 - ], - "contractKind": "contract", - "documentation": "@notice This contract stores data and funds for the DarknodeRegistry\n contract. The data / fund logic and storage have been separated to improve\n upgradability.", - "fullyImplemented": true, - "id": 2682, - "linearizedBaseContracts": [ - 2682, - 4463 - ], - "name": "DarknodeRegistryStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2401, - "libraryName": { - "contractScope": null, - "id": 2399, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7541, - "src": "424:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7541", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:4", - "typeName": { - "id": 2400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2403, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "451:21:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistryStore.Darknode", - "id": 2414, - "members": [ - { - "constant": false, - "id": 2405, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1126:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1334:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1433:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1542:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "publicKey", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1835:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1835:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Darknode", - "nodeType": "StructDefinition", - "scope": 2682, - "src": "853:1004:4", - "visibility": "public" - }, - { - "constant": false, - "id": 2418, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1886:53:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "typeName": { - "id": 2417, - "keyType": { - "id": 2415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1894:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1886:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "valueType": { - "contractScope": null, - "id": 2416, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "1905:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2420, - "name": "darknodes", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1945:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 2419, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4836, - "src": "1945:15:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2422, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "2002:19:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2421, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2002:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "2280:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2429, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "2290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2430, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2424, - "src": "2300:8:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 2432, - "nodeType": "ExpressionStatement", - "src": "2290:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2433, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "2318:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2434, - "name": "_ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2324:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "2318:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "2318:10:4" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _ren The address of the RenToken contract.", - "id": 2438, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2221:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "name": "_ren", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2253:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2425, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2211:61:4" - }, - "returnParameters": { - "id": 2428, - "nodeType": "ParameterList", - "parameters": [], - "src": "2280:0:4" - }, - "scope": 2682, - "src": "2200:135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2478, - "nodeType": "Block", - "src": "3046:346:4", - "statements": [ - { - "assignments": [ - 2456 - ], - "declarations": [ - { - "constant": false, - "id": 2456, - "name": "darknode", - "nodeType": "VariableDeclaration", - "scope": 2478, - "src": "3056:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - }, - "typeName": { - "contractScope": null, - "id": 2455, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "3056:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2464, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "_darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "3113:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2459, - "name": "_bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2444, - "src": "3147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2460, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2446, - "src": "3177:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 2461, - "name": "_registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "3215:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2462, - "name": "_deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2450, - "src": "3258:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2457, - "name": "Darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "3083:8:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Darknode_$2414_storage_ptr_$", - "typeString": "type(struct DarknodeRegistryStore.Darknode storage pointer)" - } - }, - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "owner", - "bond", - "publicKey", - "registeredAt", - "deregisteredAt" - ], - "nodeType": "FunctionCall", - "src": "3083:201:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:228:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3294:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3311:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3294:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2468, - "name": "darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2456, - "src": "3326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "src": "3294:40:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "3294:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3373:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2471, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "3344:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 5107, - "src": "3344:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4836_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3344:41:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2477, - "nodeType": "ExpressionStatement", - "src": "3344:41:4" - } - ] - }, - "documentation": "@notice Instantiates a darknode and appends it to the darknodes\n linked-list.\n\n /// @param _darknodeID The darknode's ID.\n @param _darknodeOwner The darknode's owner's address\n @param _bond The darknode's bond value\n @param _publicKey The darknode's public key\n @param _registeredAt The time stamp when the darknode is registered.\n @param _deregisteredAt The time stamp when the darknode is deregistered.", - "id": 2479, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2453, - "modifierName": { - "argumentTypes": null, - "id": 2452, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3036:9:4" - } - ], - "name": "appendDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2839:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2868:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2868:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2908:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2931:25:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2931:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2448, - "name": "_registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2966:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2966:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2450, - "name": "_deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2997:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2449, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:197:4" - }, - "returnParameters": { - "id": 2454, - "nodeType": "ParameterList", - "parameters": [], - "src": "3046:0:4" - }, - "scope": 2682, - "src": "2806:586:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2491, - "nodeType": "Block", - "src": "3527:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2488, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 2486, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "3544:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5177, - "src": "3544:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4836_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3544:27:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2485, - "id": 2490, - "nodeType": "Return", - "src": "3537:34:4" - } - ] - }, - "documentation": "@notice Returns the address of the first darknode in the store", - "id": 2492, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2482, - "modifierName": { - "argumentTypes": null, - "id": 2481, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3500:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3500:9:4" - } - ], - "name": "begin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2480, - "nodeType": "ParameterList", - "parameters": [], - "src": "3483:2:4" - }, - "returnParameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2492, - "src": "3518:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:9:4" - }, - "scope": 2682, - "src": "3469:109:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2507, - "nodeType": "Block", - "src": "3762:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2503, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3795:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2504, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3806:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "3779:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5215, - "src": "3779:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4836_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3779:38:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2500, - "id": 2506, - "nodeType": "Return", - "src": "3772:45:4" - } - ] - }, - "documentation": "@notice Returns the address of the next darknode in the store after the\n given address.", - "id": 2508, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2497, - "modifierName": { - "argumentTypes": null, - "id": 2496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3735:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3735:9:4" - } - ], - "name": "next", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3701:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3700:20:4" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2499, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3753:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3753:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:9:4" - }, - "scope": 2682, - "src": "3687:137:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2544, - "nodeType": "Block", - "src": "4005:230:4", - "statements": [ - { - "assignments": [ - 2516 - ], - "declarations": [ - { - "constant": false, - "id": 2516, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2544, - "src": "4015:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2521, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2517, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4030:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2519, - "indexExpression": { - "argumentTypes": null, - "id": 2518, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4047:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4030:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4030:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4015:48:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4073:35:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2522, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4080:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2524, - "indexExpression": { - "argumentTypes": null, - "id": 2523, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4097:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4080:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "4073:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2530, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "4136:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2531, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4147:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4836_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5240, - "src": "4118:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5240_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 5075, - "src": "4118:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4836_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:40:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "4118:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4377, - "src": "4189:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2539, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "4198:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4176:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "4176:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4176:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4205:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4168:60:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2543, - "nodeType": "ExpressionStatement", - "src": "4168:60:4" - } - ] - }, - "documentation": "@notice Removes a darknode from the store and transfers its bond to the\n owner of this contract.", - "id": 2545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2513, - "modifierName": { - "argumentTypes": null, - "id": 2512, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "3995:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3995:9:4" - } - ], - "name": "removeDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2510, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2545, - "src": "3966:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3965:20:4" - }, - "returnParameters": { - "id": 2514, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:4" - }, - "scope": 2682, - "src": "3942:293:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2588, - "nodeType": "Block", - "src": "4456:298:4", - "statements": [ - { - "assignments": [ - 2555 - ], - "declarations": [ - { - "constant": false, - "id": 2555, - "name": "previousBond", - "nodeType": "VariableDeclaration", - "scope": 2588, - "src": "4466:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4466:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4489:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4506:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4489:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4489:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4466:56:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2562, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4540:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2563, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4556:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4540:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64206e6f7420646563726561736564", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4570:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - }, - "value": "bond not decreased" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - } - ], - "id": 2561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:59:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2567, - "nodeType": "ExpressionStatement", - "src": "4532:59:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4601:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2572, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4637:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4601:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "4601:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2578, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4377, - "src": "4681:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4681:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4707:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2580, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4690:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7460, - "src": "4690:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4690:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2576, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4668:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8164, - "src": "4668:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4668:54:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4724:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8347, - "src": "4660:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4660:87:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "4660:87:4" - } - ] - }, - "documentation": "@notice Updates the bond of a darknode. The new bond must be smaller\n than the previous bond of the darknode.", - "id": 2589, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2552, - "modifierName": { - "argumentTypes": null, - "id": 2551, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4446:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4446:9:4" - } - ], - "name": "updateDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2547, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4394:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4394:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2549, - "name": "decreasedBond", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4414:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4414:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4393:43:4" - }, - "returnParameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "4456:0:4" - }, - "scope": 2682, - "src": "4366:388:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2605, - "nodeType": "Block", - "src": "4929:77:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2598, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4939:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2600, - "indexExpression": { - "argumentTypes": null, - "id": 2599, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "4956:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "4939:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2602, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "4985:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4939:60:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "4939:60:4" - } - ] - }, - "documentation": "@notice Updates the deregistration timestamp of a darknode.", - "id": 2606, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2596, - "modifierName": { - "argumentTypes": null, - "id": 2595, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "4919:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4919:9:4" - } - ], - "name": "updateDarknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2591, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4866:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4886:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4886:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4865:44:4" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [], - "src": "4929:0:4" - }, - "scope": 2682, - "src": "4828:178:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5160:58:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2615, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5177:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2617, - "indexExpression": { - "argumentTypes": null, - "id": 2616, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2608, - "src": "5194:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5177:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2405, - "src": "5177:34:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2614, - "id": 2619, - "nodeType": "Return", - "src": "5170:41:4" - } - ] - }, - "documentation": "@notice Returns the owner of a given darknode.", - "id": 2621, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2611, - "modifierName": { - "argumentTypes": null, - "id": 2610, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5124:9:4" - } - ], - "name": "darknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2608, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5090:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5089:20:4" - }, - "returnParameters": { - "id": 2614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2613, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5143:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5143:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5142:17:4" - }, - "scope": 2682, - "src": "5067:151:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2635, - "nodeType": "Block", - "src": "5362:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2630, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5379:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2632, - "indexExpression": { - "argumentTypes": null, - "id": 2631, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5379:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "5379:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2629, - "id": 2634, - "nodeType": "Return", - "src": "5372:40:4" - } - ] - }, - "documentation": "@notice Returns the bond of a given darknode.", - "id": 2636, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2626, - "modifierName": { - "argumentTypes": null, - "id": 2625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5334:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:9:4" - } - ], - "name": "darknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5300:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5299:20:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5353:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5353:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:9:4" - }, - "scope": 2682, - "src": "5278:141:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "5584:65:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2645, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2647, - "indexExpression": { - "argumentTypes": null, - "id": 2646, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2638, - "src": "5618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2409, - "src": "5601:41:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2644, - "id": 2649, - "nodeType": "Return", - "src": "5594:48:4" - } - ] - }, - "documentation": "@notice Returns the registration time of a given darknode.", - "id": 2651, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2641, - "modifierName": { - "argumentTypes": null, - "id": 2640, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5556:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:9:4" - } - ], - "name": "darknodeRegisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5522:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5521:20:4" - }, - "returnParameters": { - "id": 2644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5575:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5574:9:4" - }, - "scope": 2682, - "src": "5492:157:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "5818:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2660, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5835:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2662, - "indexExpression": { - "argumentTypes": null, - "id": 2661, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "5852:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5835:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "5835:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2659, - "id": 2664, - "nodeType": "Return", - "src": "5828:50:4" - } - ] - }, - "documentation": "@notice Returns the deregistration time of a given darknode.", - "id": 2666, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "5790:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5790:9:4" - } - ], - "name": "darknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5756:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5756:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:20:4" - }, - "returnParameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5809:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5808:9:4" - }, - "scope": 2682, - "src": "5724:161:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2680, - "nodeType": "Block", - "src": "6056:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2675, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "6073:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2677, - "indexExpression": { - "argumentTypes": null, - "id": 2676, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6090:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6073:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "publicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2413, - "src": "6073:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 2674, - "id": 2679, - "nodeType": "Return", - "src": "6066:45:4" - } - ] - }, - "documentation": "@notice Returns the encryption public key of a given darknode.", - "id": 2681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2671, - "modifierName": { - "argumentTypes": null, - "id": 2670, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4387, - "src": "6023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6023:9:4" - } - ], - "name": "darknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "5989:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5988:20:4" - }, - "returnParameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "6042:12:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2672, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6041:14:4" - }, - "scope": 2682, - "src": "5962:156:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2683, - "src": "368:5752:4" - } - ], - "src": "0:6120:4" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -7605,85 +367,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T02:30:53.670Z", - "devdoc": { - "methods": { - "appendDarknode(address,address,uint256,bytes,uint256,uint256)": { - "params": { - "_bond": "The darknode's bond value", - "_darknodeID": "The darknode's ID.", - "_darknodeOwner": "The darknode's owner's address", - "_deregisteredAt": "The time stamp when the darknode is deregistered.", - "_publicKey": "The darknode's public key", - "_registeredAt": "The time stamp when the darknode is registered." - } - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_ren": "The address of the RenToken contract." - } - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "appendDarknode(address,address,uint256,bytes,uint256,uint256)": { - "notice": "Instantiates a darknode and appends it to the darknodes linked-list. " - }, - "begin()": { - "notice": "Returns the address of the first darknode in the store" - }, - "constructor": "The contract constructor. ", - "darknodeBond(address)": { - "notice": "Returns the bond of a given darknode." - }, - "darknodeDeregisteredAt(address)": { - "notice": "Returns the deregistration time of a given darknode." - }, - "darknodeOwner(address)": { - "notice": "Returns the owner of a given darknode." - }, - "darknodePublicKey(address)": { - "notice": "Returns the encryption public key of a given darknode." - }, - "darknodeRegisteredAt(address)": { - "notice": "Returns the registration time of a given darknode." - }, - "next(address)": { - "notice": "Returns the address of the next darknode in the store after the given address." - }, - "removeDarknode(address)": { - "notice": "Removes a darknode from the store and transfers its bond to the owner of this contract." - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "updateDarknodeBond(address,uint256)": { - "notice": "Updates the bond of a darknode. The new bond must be smaller than the previous bond of the darknode." - }, - "updateDarknodeDeregisteredAt(address,uint256)": { - "notice": "Updates the deregistration timestamp of a darknode." - } - }, - "notice": "This contract stores data and funds for the DarknodeRegistry contract. The data / fund logic and storage have been separated to improve upgradability." - } + "updatedAt": "2019-06-26T02:30:53.670Z" } \ No newline at end of file diff --git a/build/devnet/DarknodeSlasher.json b/build/devnet/DarknodeSlasher.json index 8452d621..29bfdb8a 100644 --- a/build/devnet/DarknodeSlasher.json +++ b/build/devnet/DarknodeSlasher.json @@ -117,933 +117,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_prover\",\"type\":\"address\"},{\"name\":\"_challenger1\",\"type\":\"address\"},{\"name\":\"_challenger2\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_darknodeRegistry\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{},\"notice\":\"DarknodeSlasher will become a voting system for darknodes to deregister other misbehaving darknodes. Right now, it is a placeholder.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":\"DarknodeSlasher\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506040516020806104cd8339810180604052602081101561003057600080fd5b5051600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055610423806100aa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063563bf26414610067578063715018a6146100a15780638da5cb5b146100a95780638f32d59b146100cd5780639e45e0d0146100e9578063f2fde38b146100f1575b600080fd5b61009f6004803603606081101561007d57600080fd5b506001600160a01b038135811691602081013582169160409091013516610117565b005b61009f6101f1565b6100b1610297565b604080516001600160a01b039092168252519081900360200190f35b6100d56102a6565b604080519115158252519081900360200190f35b6100b16102b7565b61009f6004803603602081101561010757600080fd5b50356001600160a01b03166102c6565b61011f6102a6565b6101735760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60015460408051600160e21b63158efc990281526001600160a01b038681166004830152858116602483015284811660448301529151919092169163563bf26491606480830192600092919082900301818387803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b50505050505050565b6101f96102a6565b61024d5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001546001600160a01b031681565b6102ce6102a6565b6103225760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61032b8161032e565b50565b6001600160a01b03811661037657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103d26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a7230582066c840b24a8492e829fec80aa06fcf6fddceb3c18d9407e4e5604f9b773ac7e30029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063563bf26414610067578063715018a6146100a15780638da5cb5b146100a95780638f32d59b146100cd5780639e45e0d0146100e9578063f2fde38b146100f1575b600080fd5b61009f6004803603606081101561007d57600080fd5b506001600160a01b038135811691602081013582169160409091013516610117565b005b61009f6101f1565b6100b1610297565b604080516001600160a01b039092168252519081900360200190f35b6100d56102a6565b604080519115158252519081900360200190f35b6100b16102b7565b61009f6004803603602081101561010757600080fd5b50356001600160a01b03166102c6565b61011f6102a6565b6101735760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60015460408051600160e21b63158efc990281526001600160a01b038681166004830152858116602483015284811660448301529151919092169163563bf26491606480830192600092919082900301818387803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b50505050505050565b6101f96102a6565b61024d5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001546001600160a01b031681565b6102ce6102a6565b6103225760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61032b8161032e565b50565b6001600160a01b03811661037657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103d26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a7230582066c840b24a8492e829fec80aa06fcf6fddceb3c18d9407e4e5604f9b773ac7e30029", - "sourceMap": "295:397:5:-;;;385:108;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:108:5;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;385:108:5;657:6:35;:19;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;-1:-1:-1;;;;;724:6:35;;;;;657;691:40;;657:6;;691:40;450:16:5;:36;;-1:-1:-1;;;;;;450:36:5;-1:-1:-1;;;;;450:36:5;;;;;;;;;;295:397;;;-1:-1:-1;295:397:5;;", - "deployedSourceMap": "295:397:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;295:397:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:191;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;499:191:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;1599:137:35;;;:::i;814:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:35;;;;;;;;;;;;;;1165:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;338:40:5;;;:::i;1885:107:35:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;499:191:5:-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:16:5;;:59;;;-1:-1:-1;;;;;624:59:5;;-1:-1:-1;;;;;624:59:5;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;:22;;:59;;;;;:16;;:59;;;;;;;:16;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;624:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;624:59:5;;;;499:191;;;:::o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;814:77::-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;338:40:5:-;;;-1:-1:-1;;;;;338:40:5;;:::o;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;2093:225::-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\n\n/// @notice DarknodeSlasher will become a voting system for darknodes to\n/// deregister other misbehaving darknodes.\n/// Right now, it is a placeholder.\ncontract DarknodeSlasher is Ownable {\n\n DarknodeRegistry public darknodeRegistry;\n\n constructor(DarknodeRegistry _darknodeRegistry) public {\n darknodeRegistry = _darknodeRegistry;\n }\n\n function slash(address _prover, address _challenger1, address _challenger2)\n external\n onlyOwner\n {\n darknodeRegistry.slash(_prover, _challenger1, _challenger2);\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "exportedSymbols": { - "DarknodeSlasher": [ - 2721 - ] - }, - "id": 2722, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2684, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2685, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 7653, - "src": "25:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 2686, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 2391, - "src": "90:50:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2687, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 2688, - "nodeType": "InheritanceSpecifier", - "src": "323:7:5" - } - ], - "contractDependencies": [ - 7652 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeSlasher will become a voting system for darknodes to\n deregister other misbehaving darknodes.\n Right now, it is a placeholder.", - "fullyImplemented": true, - "id": 2721, - "linearizedBaseContracts": [ - 2721, - 7652 - ], - "name": "DarknodeSlasher", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2690, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "338:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2689, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "338:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2699, - "nodeType": "Block", - "src": "440:53:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2695, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2696, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "469:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "450:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "450:36:5" - } - ] - }, - "documentation": null, - "id": 2700, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2700, - "src": "397:34:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2691, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "397:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "396:36:5" - }, - "returnParameters": { - "id": 2694, - "nodeType": "ParameterList", - "parameters": [], - "src": "440:0:5" - }, - "scope": 2721, - "src": "385:108:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "614:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2714, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2715, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2704, - "src": "656:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2716, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "670:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2711, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "624:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1878, - "src": "624:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address) external" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "624:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "624:59:5" - } - ] - }, - "documentation": null, - "id": 2720, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2709, - "modifierName": { - "argumentTypes": null, - "id": 2708, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "600:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "600:9:5" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2702, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "514:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2704, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "531:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2706, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "553:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:61:5" - }, - "returnParameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [], - "src": "614:0:5" - }, - "scope": 2721, - "src": "499:191:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2722, - "src": "295:397:5" - } - ], - "src": "0:693:5" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "exportedSymbols": { - "DarknodeSlasher": [ - 2721 - ] - }, - "id": 2722, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2684, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2685, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 7653, - "src": "25:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 2686, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 2391, - "src": "90:50:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2687, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 2688, - "nodeType": "InheritanceSpecifier", - "src": "323:7:5" - } - ], - "contractDependencies": [ - 7652 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeSlasher will become a voting system for darknodes to\n deregister other misbehaving darknodes.\n Right now, it is a placeholder.", - "fullyImplemented": true, - "id": 2721, - "linearizedBaseContracts": [ - 2721, - 7652 - ], - "name": "DarknodeSlasher", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2690, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "338:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2689, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "338:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2699, - "nodeType": "Block", - "src": "440:53:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2695, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2696, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "469:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "450:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "450:36:5" - } - ] - }, - "documentation": null, - "id": 2700, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2700, - "src": "397:34:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2691, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "397:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "396:36:5" - }, - "returnParameters": { - "id": 2694, - "nodeType": "ParameterList", - "parameters": [], - "src": "440:0:5" - }, - "scope": 2721, - "src": "385:108:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "614:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2714, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2715, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2704, - "src": "656:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2716, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "670:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2711, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "624:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1878, - "src": "624:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address) external" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "624:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "624:59:5" - } - ] - }, - "documentation": null, - "id": 2720, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2709, - "modifierName": { - "argumentTypes": null, - "id": 2708, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "600:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "600:9:5" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2702, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "514:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2704, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "531:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2706, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "553:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:61:5" - }, - "returnParameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [], - "src": "614:0:5" - }, - "scope": 2721, - "src": "499:191:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2722, - "src": "295:397:5" - } - ], - "src": "0:693:5" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -1076,25 +150,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T02:30:53.708Z", - "devdoc": { - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - } - }, - "userdoc": { - "methods": {}, - "notice": "DarknodeSlasher will become a voting system for darknodes to deregister other misbehaving darknodes. Right now, it is a placeholder." - } + "updatedAt": "2019-06-26T02:30:53.708Z" } \ No newline at end of file diff --git a/build/devnet/RenToken.json b/build/devnet/RenToken.json index 4db8d51a..904387a5 100644 --- a/build/devnet/RenToken.json +++ b/build/devnet/RenToken.json @@ -528,2277 +528,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"INITIAL_SUPPLY\",\"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\":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\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":false,\"inputs\":[{\"name\":\"beneficiary\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferTokens\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"burn(uint256)\":{\"details\":\"Destoys `amount` tokens from the caller. * See `ERC20._burn`.\"},\"burnFrom(address,uint256)\":{\"details\":\"See `ERC20._burnFrom`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Called by a pauser to pause, triggers stopped state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Called by a pauser to unpause, returns to normal state.\"}}},\"userdoc\":{\"methods\":{\"constructor\":\"The RenToken Constructor.\"}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":\"RenToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600e81527f52657075626c696320546f6b656e00000000000000000000000000000000000060208083019190915282518084018452600381527f52454e000000000000000000000000000000000000000000000000000000000091810191909152600080546001600160a01b03191633178082559351929391926012926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620000dd90600190602086019062000460565b508151620000f390600290602085019062000460565b506003805460ff191660ff92909216919091179055506200011d9050336200014c602090811b901c565b6008805460ff1916905562000146336b033b2e3c9fd0803ce80000006200019e602090811b901c565b62000505565b62000167816007620002bd60201b620013531790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6001600160a01b0382166200021457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000230816006546200036160201b6200128c1790919060201c565b6006556001600160a01b038216600090815260046020908152604090912054620002659183906200128c62000361821b17901c565b6001600160a01b03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b620002cf8282620003dd60201b60201c565b156200033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600082820183811015620003d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b03821662000440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001a606022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a357805160ff1916838001178555620004d3565b82800160010185558215620004d3579182015b82811115620004d3578251825591602001919060010190620004b6565b50620004e1929150620004e5565b5090565b6200050291905b80821115620004e15760008155600101620004ec565b90565b61154b80620005156000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780638f32d59b11610097578063a9059cbb11610071578063a9059cbb1461041c578063bec3fa1714610448578063dd62ed3e14610474578063f2fde38b146104a257610173565b80638f32d59b146103e057806395d89b41146103e8578063a457c2d7146103f057610173565b806370a0823114610334578063715018a61461035a57806379cc67901461036257806382dc1ec41461038e5780638456cb59146103b45780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102ab5780633f4ba83a146102d757806342966c68146102e157806346fbf68e146102fe5780635c975abb146103245780636ef8d66d1461032c57610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd1461023557806323b872dd1461024f5780632ff2e9dc14610285578063313ce5671461028d575b600080fd5b6101806104c8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b03813516906020013561055d565b604080519115158252519081900360200190f35b61023d6105c2565b60408051918252519081900360200190f35b6102216004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b61023d61062f565b61029561063f565b6040805160ff9092168252519081900360200190f35b610221600480360360408110156102c157600080fd5b506001600160a01b038135169060200135610648565b6102df6106a6565b005b6102df600480360360208110156102f757600080fd5b5035610786565b6102216004803603602081101561031457600080fd5b50356001600160a01b0316610793565b6102216107ac565b6102df6107b5565b61023d6004803603602081101561034a57600080fd5b50356001600160a01b03166107c0565b6102df6107db565b6102df6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610881565b6102df600480360360208110156103a457600080fd5b50356001600160a01b031661088f565b6102df6108df565b6103c46109b9565b604080516001600160a01b039092168252519081900360200190f35b6102216109c8565b6101806109d9565b6102216004803603604081101561040657600080fd5b506001600160a01b038135169060200135610a37565b6102216004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a95565b6102216004803603604081101561045e57600080fd5b506001600160a01b038135169060200135610af3565b61023d6004803603604081101561048a57600080fd5b506001600160a01b0381358116916020013516610bb2565b6102df600480360360208110156104b857600080fd5b50356001600160a01b0316610bdd565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b60085460009060ff16156105b15760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610c42565b9392505050565b60065490565b60085460009060ff161561061c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610627848484610c58565b949350505050565b6b033b2e3c9fd0803ce800000081565b60035460ff1690565b60085460009060ff161561069c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610caf565b6106af33610793565b6106ed57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff166107475760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6008805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6107903382610ceb565b50565b60006107a660078363ffffffff610dc916565b92915050565b60085460ff1690565b6107be33610e33565b565b6001600160a01b031660009081526004602052604090205490565b6107e36109c8565b6108375760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61088b8282610e7b565b5050565b61089833610793565b6108d657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b61079081610ec0565b6108e833610793565b61092657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff16156109775760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6008805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b60085460009060ff1615610a8b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f08565b60085460009060ff1615610ae95760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f44565b6000610afd6109c8565b610b515760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008211610b5e57600080fd5b610b69338484610f4d565b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610be56109c8565b610c395760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61079081611097565b6000610c4f33848461113a565b50600192915050565b6000610c65848484610f4d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610ca5918691610ca0908663ffffffff61122c16565b61113a565b5060019392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61128c16565b6001600160a01b038216610d3357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114b66021913960400191505060405180910390fd5b600654610d46908263ffffffff61122c16565b6006556001600160a01b038216600090815260046020526040902054610d72908263ffffffff61122c16565b6001600160a01b0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610e1357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114946022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610e4460078263ffffffff6112e916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e858282610ceb565b6001600160a01b03821660009081526005602090815260408083203380855292529091205461088b918491610ca0908563ffffffff61122c16565b610ed160078263ffffffff61135316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61122c16565b6000610c4f3384845b6001600160a01b038316610f9557604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114d76025913960400191505060405180910390fd5b6001600160a01b038216610fdd57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806113d86023913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054611006908263ffffffff61122c16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461103b908263ffffffff61128c16565b6001600160a01b0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166110df57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061142b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661118257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114fc6024913960400191505060405180910390fd5b6001600160a01b0382166111ca57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156112865760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156105bb5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6112f38282610dc9565b61133157604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114736021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61135d8282610dc9565b156113b25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820715382a57d16cd2d1255e6b4305cc3f37811602a240b798963b059cd77f3899b0029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780638f32d59b11610097578063a9059cbb11610071578063a9059cbb1461041c578063bec3fa1714610448578063dd62ed3e14610474578063f2fde38b146104a257610173565b80638f32d59b146103e057806395d89b41146103e8578063a457c2d7146103f057610173565b806370a0823114610334578063715018a61461035a57806379cc67901461036257806382dc1ec41461038e5780638456cb59146103b45780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102ab5780633f4ba83a146102d757806342966c68146102e157806346fbf68e146102fe5780635c975abb146103245780636ef8d66d1461032c57610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd1461023557806323b872dd1461024f5780632ff2e9dc14610285578063313ce5671461028d575b600080fd5b6101806104c8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b03813516906020013561055d565b604080519115158252519081900360200190f35b61023d6105c2565b60408051918252519081900360200190f35b6102216004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b61023d61062f565b61029561063f565b6040805160ff9092168252519081900360200190f35b610221600480360360408110156102c157600080fd5b506001600160a01b038135169060200135610648565b6102df6106a6565b005b6102df600480360360208110156102f757600080fd5b5035610786565b6102216004803603602081101561031457600080fd5b50356001600160a01b0316610793565b6102216107ac565b6102df6107b5565b61023d6004803603602081101561034a57600080fd5b50356001600160a01b03166107c0565b6102df6107db565b6102df6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610881565b6102df600480360360208110156103a457600080fd5b50356001600160a01b031661088f565b6102df6108df565b6103c46109b9565b604080516001600160a01b039092168252519081900360200190f35b6102216109c8565b6101806109d9565b6102216004803603604081101561040657600080fd5b506001600160a01b038135169060200135610a37565b6102216004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a95565b6102216004803603604081101561045e57600080fd5b506001600160a01b038135169060200135610af3565b61023d6004803603604081101561048a57600080fd5b506001600160a01b0381358116916020013516610bb2565b6102df600480360360208110156104b857600080fd5b50356001600160a01b0316610bdd565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b60085460009060ff16156105b15760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610c42565b9392505050565b60065490565b60085460009060ff161561061c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610627848484610c58565b949350505050565b6b033b2e3c9fd0803ce800000081565b60035460ff1690565b60085460009060ff161561069c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610caf565b6106af33610793565b6106ed57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff166107475760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6008805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6107903382610ceb565b50565b60006107a660078363ffffffff610dc916565b92915050565b60085460ff1690565b6107be33610e33565b565b6001600160a01b031660009081526004602052604090205490565b6107e36109c8565b6108375760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61088b8282610e7b565b5050565b61089833610793565b6108d657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b61079081610ec0565b6108e833610793565b61092657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff16156109775760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6008805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b60085460009060ff1615610a8b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f08565b60085460009060ff1615610ae95760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f44565b6000610afd6109c8565b610b515760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008211610b5e57600080fd5b610b69338484610f4d565b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610be56109c8565b610c395760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61079081611097565b6000610c4f33848461113a565b50600192915050565b6000610c65848484610f4d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610ca5918691610ca0908663ffffffff61122c16565b61113a565b5060019392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61128c16565b6001600160a01b038216610d3357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114b66021913960400191505060405180910390fd5b600654610d46908263ffffffff61122c16565b6006556001600160a01b038216600090815260046020526040902054610d72908263ffffffff61122c16565b6001600160a01b0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610e1357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114946022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610e4460078263ffffffff6112e916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e858282610ceb565b6001600160a01b03821660009081526005602090815260408083203380855292529091205461088b918491610ca0908563ffffffff61122c16565b610ed160078263ffffffff61135316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61122c16565b6000610c4f3384845b6001600160a01b038316610f9557604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114d76025913960400191505060405180910390fd5b6001600160a01b038216610fdd57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806113d86023913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054611006908263ffffffff61122c16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461103b908263ffffffff61128c16565b6001600160a01b0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166110df57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061142b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661118257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114fc6024913960400191505060405180910390fd5b6001600160a01b0382166111ca57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156112865760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156105bb5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6112f38282610dc9565b61133157604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114736021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61135d8282610dc9565b156113b25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820715382a57d16cd2d1255e6b4305cc3f37811602a240b798963b059cd77f3899b0029", - "sourceMap": "306:872:6:-;;;655:144;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;715:5:6;;;;;;;;;;;;;;;;;;;;722:7;;;;;;;;;;;;;;;;;;-1:-1:-1;657:19:35;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;715:5:6;;722:7;;521:2;;-1:-1:-1;;;;;724:6:35;;-1:-1:-1;691:40:35;;-1:-1:-1;;691:40:35;504:12:38;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;526:16:38;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:38;:20;;-1:-1:-1;;552:20:38;;;;;;;;;;;;-1:-1:-1;275:22:30;;-1:-1:-1;286:10:30;275;;;;;:22;;:::i;:::-;975:7:32;:15;;-1:-1:-1;;975:15:32;;;759:33:6;765:10;571:35;759:5;;;;;:33;;:::i;:::-;306:872;;737:119:30;793:21;806:7;793:8;:12;;;;;;:21;;;;:::i;:::-;829:20;;-1:-1:-1;;;;;829:20:30;;;;;;;;737:119;:::o;5771:302:36:-;-1:-1:-1;;;;;5846:21:36;;5838:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:24;5946:6;5929:12;;:16;;;;;;:24;;;;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:36;;;;;;:9;:18;;;;;;;;;:30;;6007:6;;5984:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;5963:18:36;;;;;;:9;:18;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;;;6029:37;;;;;;;;;;5771:302;;:::o;260:175:29:-;337:18;341:4;347:7;337:3;;;:18;;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:29;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:29;424:4;401:27;;;260:175::o;834:176:34:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;779:200:29:-;851:4;-1:-1:-1;;;;;875:21:29;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:29;:11;:20;;;;;;;;;;;;;;;779:200::o;306:872:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;306:872:6;;;-1:-1:-1;306:872:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "306:872:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:872:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:38;;;:::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;644:81:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;516:138:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;516:138:39;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89:36;;;:::i;:::-;;;;;;;;;;;;;;;;352:158:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;352:158:39;;;;;;;;;;;;;;;;;:::i;530:76:6:-;;;:::i;1478:81:38:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;660:165:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;660:165:39;;;;;;;;:::i;1852:115:32:-;;;:::i;:::-;;397:79:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;397:79:37;;:::i;447:107:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;447:107:30;-1:-1:-1;;;;;447:107:30;;:::i;1092:76:32:-;;;:::i;656:75:30:-;;;:::i;1661:108:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:36;-1:-1:-1;;;;;1661:108:36;;:::i;1599:137:35:-;;;:::i;533:101:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;533:101:37;;;;;;;;:::i;560:90:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;560:90:30;-1:-1:-1;;;;;560:90:30;;:::i;1649:113:32:-;;;:::i;814:77:35:-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:35;;;;;;;;;;;;;;1165:90;;;:::i;838:85:38:-;;;:::i;831:175:39:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;831:175:39;;;;;;;;:::i;216:130::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;216:130:39;;;;;;;;:::i;805:371:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;805:371:6;;;;;;;;:::i;2183:132:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:36;;;;;;;;;;:::i;1885:107:35:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;644:81:38:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;516:138:39:-;1321:7:32;;595:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;618:29:39;632:7;641:5;618:13;:29::i;:::-;611:36;516:138;-1:-1:-1;;;516:138:39:o;1514:89:36:-;1584:12;;1514:89;:::o;352:158:39:-;1321:7:32;;445:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;468:35:39;487:4;493:2;497:5;468:18;:35::i;:::-;461:42;352:158;-1:-1:-1;;;;352:158:39:o;530:76:6:-;571:35;530:76;:::o;1478:81:38:-;1543:9;;;;1478:81;:::o;660:165:39:-;1321:7:32;;751:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;774:44:39;798:7;807:10;774:23;:44::i;1852:115:32:-;350:20:30;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:7:32;;;;1504:40;;;;;-1:-1:-1;;;;;1504:40:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:7;:15;;-1:-1:-1;;1910:15:32;;;1940:20;;;1949:10;1940:20;;;;;;;;;;;;;1852:115::o;397:79:37:-;444:25;450:10;462:6;444:5;:25::i;:::-;397:79;:::o;447:107:30:-;503:4;526:21;:8;539:7;526:21;:12;:21;:::i;:::-;519:28;447:107;-1:-1:-1;;447:107:30:o;1092:76:32:-;1154:7;;;;1092:76;:::o;656:75:30:-;699:25;713:10;699:13;:25::i;:::-;656:75::o;1661:108:36:-;-1:-1:-1;;;;;1744:18:36;1718:7;1744:18;;;:9;:18;;;;;;;1661:108::o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;533:101:37:-;601:26;611:7;620:6;601:9;:26::i;:::-;533:101;;:::o;560:90:30:-;350:20;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:19;635:7;624:10;:19::i;1649:113:32:-;350:20:30;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:7:32;;;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;1708:7;:14;;-1:-1:-1;;1708:14:32;1718:4;1708:14;;;1737:18;;;1744:10;1737:18;;;;;;;;;;;;;1649:113::o;814:77:35:-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;838:85:38:-;909:7;902:14;;;;;;;-1:-1:-1;;902:14:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;831:175:39;1321:7:32;;927:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;950:49:39;974:7;983:15;950:23;:49::i;216:130::-;1321:7:32;;291:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;314:25:39;329:2;333:5;314:14;:25::i;805:371:6:-;892:4;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:1:6;1027:6;:10;1019:19;;;;;;1049:42;1059:10;1071:11;1084:6;1049:9;:42::i;:::-;1106:41;;;;;;;;-1:-1:-1;;;;;1106:41:6;;;1115:10;;1106:41;;;;;;;;;-1:-1:-1;1165:4:6;805:371;;;;:::o;2183:132:36:-;-1:-1:-1;;;;;2281:18:36;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;2453:145:36:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:36;2453:145;;;;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:36;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:36;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:36;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;6392:300::-;-1:-1:-1;;;;;6466:21:36;;6458:67;;;;-1:-1:-1;;;;;6458:67:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:36;;;;;;:9;:18;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:36;;;;;;:9;:18;;;;;;;;:50;;;;6649:36;;;;;;;6584:18;;6649:36;;;;;;;;;;;6392:300;;:::o;779:200:29:-;851:4;-1:-1:-1;;;;;875:21:29;;867:68;;;;-1:-1:-1;;;;;867:68:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:29;:11;:20;;;;;;;;;;;;;;;779:200::o;862:127:30:-;921:24;:8;937:7;921:24;:15;:24;:::i;:::-;960:22;;-1:-1:-1;;;;;960:22:30;;;;;;;;862:127;:::o;7623:185:36:-;7694:22;7700:7;7709:6;7694:5;:22::i;:::-;-1:-1:-1;;;;;7756:20:36;;;;;;:11;:20;;;;;;;;7744:10;7756:32;;;;;;;;;7726:75;;7735:7;;7756:44;;7793:6;7756:44;:36;:44;:::i;737:119:30:-;793:21;:8;806:7;793:21;:12;:21;:::i;:::-;829:20;;-1:-1:-1;;;;;829:20:30;;;;;;;;737:119;:::o;4392:213:36:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:36;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;5079:422;-1:-1:-1;;;;;5176:20:36;;5168:70;;;;-1:-1:-1;;;;;5168:70:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:36;;5248:71;;;;-1:-1:-1;;;;;5248:71:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:36;;;;;;:9;:17;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:36;;;;;;;:9;:17;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:36;;;;;;;:9;:20;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;2093:225:35:-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o;7117:329:36:-;-1:-1:-1;;;;;7209:19:36;;7201:68;;;;-1:-1:-1;;;;;7201:68:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:36;;7279:68;;;;-1:-1:-1;;;;;7279:68:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:36;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;510:180:29;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;;;581:64:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:29;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:29;;;510:180::o;260:175::-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;;;328:63:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:29;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:29;424:4;401:27;;;260:175::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\";\n\ncontract RenToken is Ownable, ERC20Detailed, ERC20Pausable, ERC20Burnable {\n\n string private constant _name = \"Republic Token\";\n string private constant _symbol = \"REN\";\n uint8 private constant _decimals = 18;\n\n uint256 public constant INITIAL_SUPPLY = 1000000000 * 10**uint256(_decimals);\n\n /// @notice The RenToken Constructor.\n constructor() ERC20Burnable() ERC20Pausable() ERC20Detailed(_name, _symbol, _decimals) public {\n _mint(msg.sender, INITIAL_SUPPLY);\n }\n\n function transferTokens(address beneficiary, uint256 amount) public onlyOwner returns (bool) {\n // Note: The deployed version has no revert reason\n /* solium-disable-next-line error-reason */\n require(amount > 0);\n\n _transfer(msg.sender, beneficiary, amount);\n emit Transfer(msg.sender, beneficiary, amount);\n\n return true;\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "exportedSymbols": { - "RenToken": [ - 2807 - ] - }, - "id": 2808, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2723, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2724, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7653, - "src": "25:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2725, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8139, - "src": "89:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "id": 2726, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8241, - "src": "161:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "id": 2727, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8081, - "src": "233:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2728, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "327:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 2729, - "nodeType": "InheritanceSpecifier", - "src": "327:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2730, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8138, - "src": "336:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$8138", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2731, - "nodeType": "InheritanceSpecifier", - "src": "336:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2732, - "name": "ERC20Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8240, - "src": "351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Pausable_$8240", - "typeString": "contract ERC20Pausable" - } - }, - "id": 2733, - "nodeType": "InheritanceSpecifier", - "src": "351:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2734, - "name": "ERC20Burnable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8080, - "src": "366:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Burnable_$8080", - "typeString": "contract ERC20Burnable" - } - }, - "id": 2735, - "nodeType": "InheritanceSpecifier", - "src": "366:13:6" - } - ], - "contractDependencies": [ - 7174, - 7339, - 7652, - 8049, - 8080, - 8138, - 8240, - 8309 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2807, - "linearizedBaseContracts": [ - 2807, - 8080, - 8240, - 7339, - 7174, - 8049, - 8138, - 8309, - 7652 - ], - "name": "RenToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2738, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "387:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "387:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52657075626c696320546f6b656e", - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "419:16:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c6ec46181aa7e50449c1e0380e9046c227fda9fd0b9c20a72f5ec058938b03", - "typeString": "literal_string \"Republic Token\"" - }, - "value": "Republic Token" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2741, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "441:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2739, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52454e", - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f3045e2a4127a16411506ed3ee0d680edc88abec4ec54f5803cb81605dbdf79", - "typeString": "literal_string \"REN\"" - }, - "value": "REN" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2744, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "486:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2742, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "521:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2753, - "name": "INITIAL_SUPPLY", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "530:76:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "530:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030303030", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:10:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1000000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "596:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "584:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "571:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 2771, - "nodeType": "Block", - "src": "749:50:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "765:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2768, - "name": "INITIAL_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2753, - "src": "777:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2765, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7935, - "src": "759:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "759:33:6" - } - ] - }, - "documentation": "@notice The RenToken Constructor.", - "id": 2772, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [], - "id": 2756, - "modifierName": { - "argumentTypes": null, - "id": 2755, - "name": "ERC20Burnable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8080, - "src": "669:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Burnable_$8080_$", - "typeString": "type(contract ERC20Burnable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:15:6" - }, - { - "arguments": [], - "id": 2758, - "modifierName": { - "argumentTypes": null, - "id": 2757, - "name": "ERC20Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8240, - "src": "685:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Pausable_$8240_$", - "typeString": "type(contract ERC20Pausable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "685:15:6" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2738, - "src": "715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2761, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "722:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "731:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2759, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8138, - "src": "701:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$8138_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "701:40:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2754, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:2:6" - }, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:6" - }, - "scope": 2807, - "src": "655:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2805, - "nodeType": "Block", - "src": "898:278:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2784, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1027:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1036:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1027:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8346, - "src": "1019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1019:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2788, - "nodeType": "ExpressionStatement", - "src": "1019:19:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "1059:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1071:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1084:6:6", - "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": 2789, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7892, - "src": "1049:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1049:42:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2795, - "nodeType": "ExpressionStatement", - "src": "1049:42:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "1115:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1115:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2799, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1127:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2800, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1140:6:6", - "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": 2796, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8300, - "src": "1106:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1106:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "EmitStatement", - "src": "1101:46:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1165:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2782, - "id": 2804, - "nodeType": "Return", - "src": "1158:11:6" - } - ] - }, - "documentation": null, - "id": 2806, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2779, - "modifierName": { - "argumentTypes": null, - "id": 2778, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "873:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "873:9:6" - } - ], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2774, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "829:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2776, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "850:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "828:37:6" - }, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "892:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2780, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "892:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:6:6" - }, - "scope": 2807, - "src": "805:371:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2808, - "src": "306:872:6" - } - ], - "src": "0:1179:6" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "exportedSymbols": { - "RenToken": [ - 2807 - ] - }, - "id": 2808, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2723, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2724, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7653, - "src": "25:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2725, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8139, - "src": "89:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "id": 2726, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8241, - "src": "161:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "id": 2727, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8081, - "src": "233:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2728, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7652, - "src": "327:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7652", - "typeString": "contract Ownable" - } - }, - "id": 2729, - "nodeType": "InheritanceSpecifier", - "src": "327:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2730, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8138, - "src": "336:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$8138", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2731, - "nodeType": "InheritanceSpecifier", - "src": "336:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2732, - "name": "ERC20Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8240, - "src": "351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Pausable_$8240", - "typeString": "contract ERC20Pausable" - } - }, - "id": 2733, - "nodeType": "InheritanceSpecifier", - "src": "351:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2734, - "name": "ERC20Burnable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8080, - "src": "366:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Burnable_$8080", - "typeString": "contract ERC20Burnable" - } - }, - "id": 2735, - "nodeType": "InheritanceSpecifier", - "src": "366:13:6" - } - ], - "contractDependencies": [ - 7174, - 7339, - 7652, - 8049, - 8080, - 8138, - 8240, - 8309 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2807, - "linearizedBaseContracts": [ - 2807, - 8080, - 8240, - 7339, - 7174, - 8049, - 8138, - 8309, - 7652 - ], - "name": "RenToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2738, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "387:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "387:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52657075626c696320546f6b656e", - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "419:16:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c6ec46181aa7e50449c1e0380e9046c227fda9fd0b9c20a72f5ec058938b03", - "typeString": "literal_string \"Republic Token\"" - }, - "value": "Republic Token" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2741, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "441:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2739, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52454e", - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f3045e2a4127a16411506ed3ee0d680edc88abec4ec54f5803cb81605dbdf79", - "typeString": "literal_string \"REN\"" - }, - "value": "REN" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2744, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "486:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2742, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "521:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2753, - "name": "INITIAL_SUPPLY", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "530:76:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "530:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030303030", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:10:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1000000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "596:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "584:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "571:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 2771, - "nodeType": "Block", - "src": "749:50:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "765:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2768, - "name": "INITIAL_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2753, - "src": "777:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2765, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7935, - "src": "759:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "759:33:6" - } - ] - }, - "documentation": "@notice The RenToken Constructor.", - "id": 2772, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [], - "id": 2756, - "modifierName": { - "argumentTypes": null, - "id": 2755, - "name": "ERC20Burnable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8080, - "src": "669:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Burnable_$8080_$", - "typeString": "type(contract ERC20Burnable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:15:6" - }, - { - "arguments": [], - "id": 2758, - "modifierName": { - "argumentTypes": null, - "id": 2757, - "name": "ERC20Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8240, - "src": "685:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Pausable_$8240_$", - "typeString": "type(contract ERC20Pausable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "685:15:6" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2738, - "src": "715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2761, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "722:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "731:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2759, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8138, - "src": "701:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$8138_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "701:40:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2754, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:2:6" - }, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:6" - }, - "scope": 2807, - "src": "655:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2805, - "nodeType": "Block", - "src": "898:278:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2784, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1027:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1036:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1027:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8346, - 8347 - ], - "referencedDeclaration": 8346, - "src": "1019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1019:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2788, - "nodeType": "ExpressionStatement", - "src": "1019:19:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "1059:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1071:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1084:6:6", - "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": 2789, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7892, - "src": "1049:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1049:42:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2795, - "nodeType": "ExpressionStatement", - "src": "1049:42:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8343, - "src": "1115:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1115:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2799, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1127:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2800, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1140:6:6", - "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": 2796, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8300, - "src": "1106:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1106:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "EmitStatement", - "src": "1101:46:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1165:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2782, - "id": 2804, - "nodeType": "Return", - "src": "1158:11:6" - } - ] - }, - "documentation": null, - "id": 2806, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2779, - "modifierName": { - "argumentTypes": null, - "id": 2778, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7585, - "src": "873:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "873:9:6" - } - ], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2774, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "829:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2776, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "850:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "828:37:6" - }, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "892:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2780, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "892:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:6:6" - }, - "scope": 2807, - "src": "805:371:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2808, - "src": "306:872:6" - } - ], - "src": "0:1179:6" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2811,59 +541,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T02:30:53.574Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "burn(uint256)": { - "details": "Destoys `amount` tokens from the caller. * See `ERC20._burn`." - }, - "burnFrom(address,uint256)": { - "details": "See `ERC20._burnFrom`." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "pause()": { - "details": "Called by a pauser to pause, triggers stopped state." - }, - "paused()": { - "details": "Returns true if the contract is paused, and false otherwise." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "unpause()": { - "details": "Called by a pauser to unpause, returns to normal state." - } - } - }, - "userdoc": { - "methods": { - "constructor": "The RenToken Constructor." - } - } + "updatedAt": "2019-06-26T02:30:53.574Z" } \ No newline at end of file diff --git a/build/devnet/ShifterRegistry.json b/build/devnet/ShifterRegistry.json index cb596fc0..fb905f2a 100644 --- a/build/devnet/ShifterRegistry.json +++ b/build/devnet/ShifterRegistry.json @@ -308,12729 +308,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"getShifterByToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"name\":\"getShifterBySymbol\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getShiftedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"setShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"removeShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_newShifterAddress\",\"type\":\"address\"}],\"name\":\"updateShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getShifters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"name\":\"getTokenBySymbol\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_indexedSymbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_indexedSymbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_currentShifterAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_newShifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"getShiftedTokens(address,uint256)\":{\"details\":\"To get all the registered shifted tokens use count = 0.\"},\"getShifterBySymbol(string)\":{\"params\":{\"_tokenSymbol\":\"The symbol of the ERC20Shifted token contract.\"}},\"getShifterByToken(address)\":{\"params\":{\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}},\"getShifters(address,uint256)\":{\"details\":\"To get all the registered shifters use count = 0.\"},\"getTokenBySymbol(string)\":{\"params\":{\"_tokenSymbol\":\"The symbol of the ERC20Shifted token contract to lookup.\"}},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"removeShifter(string)\":{\"params\":{\"_symbol\":\"The symbol of the token to deregister.\"}},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"setShifter(address,address)\":{\"params\":{\"_shifterAddress\":\"The address of the Shifter contract.\",\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"updateShifter(address,address)\":{\"params\":{\"_newShifterAddress\":\"The updated address of the Shifter contract.\",\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}}}},\"userdoc\":{\"methods\":{\"getShifterBySymbol(string)\":{\"notice\":\"Returns the Shifter address for the given ERC20Shifted token symbol. \"},\"getShifterByToken(address)\":{\"notice\":\"Returns the Shifter address for the given ERC20Shifted token contract address. \"},\"getTokenBySymbol(string)\":{\"notice\":\"Returns the ERC20Shifted address for the given token symbol. \"},\"removeShifter(string)\":{\"notice\":\"Allows the owner to remove the shifter address for a given ERC20shifter token contract. \"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setShifter(address,address)\":{\"notice\":\"Allow the owner to set the shifter address for a given ERC20Shifted token contract. \"},\"updateShifter(address,address)\":{\"notice\":\"Allow the owner to update the shifter address for a given ERC20Shifted token contract. \"}},\"notice\":\"ShifterRegistry is a mapping from assets to their associated ERC20Shifted and Shifter contracts.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol\":\"ShifterRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol\":{\"keccak256\":\"0x401971511b7ab4f784cac3073adfb1d03610e7ae4117f8da4a5044b5130fc65b\",\"urls\":[\"bzzr://50190502bd6cdd85765b89632ca0178532ba759f126a90dc5c8a9124d5fff193\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol\":{\"keccak256\":\"0xf20e8b9d799331edb01094d5200b6de37f0351f3aa85691ff93917695a1f92ae\",\"urls\":[\"bzzr://a8d387d95fbbd7669f7437bda083a095b2f6c290ccf783ada190bde84e57b18c\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x6080604081905260006002819055600180546001600160a01b0319163317908190556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36112c68061005f6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a47c84bd1161008c578063be1bca1911610066578063be1bca19146102d2578063deeb2efe14610300578063efa74f1f1461032c578063f2fde38b1461039a576100cf565b8063a47c84bd146101ba578063a904d13d14610236578063ac5b1ba914610264576100cf565b806328c4f410146100d45780634e71e0c814610116578063715018a6146101205780638da5cb5b146101285780638f32d59b1461013057806392a29e301461014c575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166103c0565b604080516001600160a01b039092168252519081900360200190f35b61011e6103de565b005b61011e6104a5565b6100fa610539565b610138610548565b604080519115158252519081900360200190f35b6100fa6004803603602081101561016257600080fd5b810190602081018135600160201b81111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460018302840111600160201b831117156101af57600080fd5b509092509050610559565b6101e6600480360360408110156101d057600080fd5b506001600160a01b0381351690602001356105a9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022257818101518382015260200161020a565b505050509050019250505060405180910390f35b61011e6004803603604081101561024c57600080fd5b506001600160a01b0381358116916020013516610676565b61011e6004803603602081101561027a57600080fd5b810190602081018135600160201b81111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460018302840111600160201b831117156102c757600080fd5b509092509050610ace565b61011e600480360360408110156102e857600080fd5b506001600160a01b0381358116916020013516610cca565b6101e66004803603604081101561031657600080fd5b506001600160a01b038135169060200135610df9565b6100fa6004803603602081101561034257600080fd5b810190602081018135600160201b81111561035c57600080fd5b82018360208201111561036e57600080fd5b803590602001918460018302840111600160201b8311171561038f57600080fd5b509092509050610ebb565b61011e600480360360208110156103b057600080fd5b50356001600160a01b0316610ef5565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b031633146104405760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6104ad610548565b6104ef5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60006005600060068585604051808383808284379190910194855250506040805160209481900385019020546001600160a01b039081168652938501959095525050910160002054169392505050565b60606000826105bb57506002546105be565b50815b6060816040519080825280602002602001820160405280156105ea578160200160208202803883390190505b5090506000856001600160a01b03811661060b576106086004610f61565b90505b8382101561066b576001600160a01b0381166106265761066b565b8083838151811061063357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061065e600482610f80565b905060018201915061060b565b509095945050505050565b61067e610548565b6106c05760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6106cb600382610ff5565b156107205760408051600160e51b62461bcd02815260206004820152601a60248201527f7368696674657220616c72656164792072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416156107905760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b6060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051600160201b81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151600160201b81118282018710171561084b57600080fd5b5050929190505050905060006001600160a01b03166006826040518082805190602001908083835b602083106108925780518252601f199092019160209182019101610873565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b031692909214915061092390505760408051600160e51b62461bcd02815260206004820152601960248201527f73796d626f6c20616c7265616479207265676973746572656400000000000000604482015290519081900360640190fd5b61092e600383611014565b610939600484611014565b826006826040518082805190602001908083835b6020831061096c5780518252601f19909201916020918201910161094d565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201852080546001600160a01b03199081166001600160a01b0398891617909155898716600081815260058552929092208054909116968916968717905560028054600101905586519094879450925082918401908083835b60208310610a0c5780518252601f1990920191602091820191016109ed565b51815160209384036101000a60001901801990921691161790526040805192909401829003822081835289518383015289519096507fad1b5a1f09ea4cf872d9274b59cccba2c4fb43f92eaf5a54b705449417adce1e95508994929350839283019185019080838360005b83811015610a8f578181015183820152602001610a77565b50505050905090810190601f168015610abc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b610ad6610548565b610b185760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505080610ba15760408051600160e51b62461bcd02815260206004820152601560248201527f73796d626f6c206e6f7420726567697374657265640000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380821660009081526005602052604080822080546001600160a01b03198116909155905192169160069086908690808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094166001600160a01b03199094169390931790925550610c23905060038261102b565b610c2e60048361102b565b600280546000190190556040516001600160a01b038083169190841690869086908083838082843760408051939091018390038320602080855284018c905295507f7fa2fe506a0201656c1d87a8927899ad716ebd71b23fdabce40b56ae2205696394508b93508a92915081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b610cd2610548565b610d145760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001600160a01b038083166000908152600560205260409020541680610d845760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b610d8f60038261102b565b610d9a600383611014565b6001600160a01b0383811660008181526005602052604080822080546001600160a01b03191687861690811790915590519093851692917f78ef5fc29fe65855a5352e3954d6839f596542b47b3aeb40b84596358d06f09a91a4505050565b6060600082610e0b5750600254610e0e565b50815b606081604051908082528060200260200182016040528015610e3a578160200160208202803883390190505b5090506000856001600160a01b038116610e5b57610e586003610f61565b90505b8382101561066b576001600160a01b038116610e765761066b565b80838381518110610e8357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610eae600382610f80565b9050600182019150610e5b565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b610efd610548565b610f3f5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805260209190915260409020600101546001600160a01b031690565b6000610f8c8383610ff5565b610fd15760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6001600160a01b03166000908152602091909152604090205460ff1690565b611027826110218461110d565b8361112f565b5050565b6110358282610ff5565b61107a5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b03811661108d57611027565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b60008080526020829052604090205461010090046001600160a01b0316919050565b6111398382610ff5565b1561118e5760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111988383610ff5565b806111aa57506001600160a01b038216155b6111ef5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff191617905556fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058202404f2af812c86565d29c0a114533181e32f56b33e64dfff4ffa0bb8d6c78d460029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a47c84bd1161008c578063be1bca1911610066578063be1bca19146102d2578063deeb2efe14610300578063efa74f1f1461032c578063f2fde38b1461039a576100cf565b8063a47c84bd146101ba578063a904d13d14610236578063ac5b1ba914610264576100cf565b806328c4f410146100d45780634e71e0c814610116578063715018a6146101205780638da5cb5b146101285780638f32d59b1461013057806392a29e301461014c575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166103c0565b604080516001600160a01b039092168252519081900360200190f35b61011e6103de565b005b61011e6104a5565b6100fa610539565b610138610548565b604080519115158252519081900360200190f35b6100fa6004803603602081101561016257600080fd5b810190602081018135600160201b81111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460018302840111600160201b831117156101af57600080fd5b509092509050610559565b6101e6600480360360408110156101d057600080fd5b506001600160a01b0381351690602001356105a9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022257818101518382015260200161020a565b505050509050019250505060405180910390f35b61011e6004803603604081101561024c57600080fd5b506001600160a01b0381358116916020013516610676565b61011e6004803603602081101561027a57600080fd5b810190602081018135600160201b81111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460018302840111600160201b831117156102c757600080fd5b509092509050610ace565b61011e600480360360408110156102e857600080fd5b506001600160a01b0381358116916020013516610cca565b6101e66004803603604081101561031657600080fd5b506001600160a01b038135169060200135610df9565b6100fa6004803603602081101561034257600080fd5b810190602081018135600160201b81111561035c57600080fd5b82018360208201111561036e57600080fd5b803590602001918460018302840111600160201b8311171561038f57600080fd5b509092509050610ebb565b61011e600480360360208110156103b057600080fd5b50356001600160a01b0316610ef5565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b031633146104405760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6104ad610548565b6104ef5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60006005600060068585604051808383808284379190910194855250506040805160209481900385019020546001600160a01b039081168652938501959095525050910160002054169392505050565b60606000826105bb57506002546105be565b50815b6060816040519080825280602002602001820160405280156105ea578160200160208202803883390190505b5090506000856001600160a01b03811661060b576106086004610f61565b90505b8382101561066b576001600160a01b0381166106265761066b565b8083838151811061063357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061065e600482610f80565b905060018201915061060b565b509095945050505050565b61067e610548565b6106c05760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6106cb600382610ff5565b156107205760408051600160e51b62461bcd02815260206004820152601a60248201527f7368696674657220616c72656164792072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416156107905760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b6060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051600160201b81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151600160201b81118282018710171561084b57600080fd5b5050929190505050905060006001600160a01b03166006826040518082805190602001908083835b602083106108925780518252601f199092019160209182019101610873565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b031692909214915061092390505760408051600160e51b62461bcd02815260206004820152601960248201527f73796d626f6c20616c7265616479207265676973746572656400000000000000604482015290519081900360640190fd5b61092e600383611014565b610939600484611014565b826006826040518082805190602001908083835b6020831061096c5780518252601f19909201916020918201910161094d565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201852080546001600160a01b03199081166001600160a01b0398891617909155898716600081815260058552929092208054909116968916968717905560028054600101905586519094879450925082918401908083835b60208310610a0c5780518252601f1990920191602091820191016109ed565b51815160209384036101000a60001901801990921691161790526040805192909401829003822081835289518383015289519096507fad1b5a1f09ea4cf872d9274b59cccba2c4fb43f92eaf5a54b705449417adce1e95508994929350839283019185019080838360005b83811015610a8f578181015183820152602001610a77565b50505050905090810190601f168015610abc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b610ad6610548565b610b185760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505080610ba15760408051600160e51b62461bcd02815260206004820152601560248201527f73796d626f6c206e6f7420726567697374657265640000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380821660009081526005602052604080822080546001600160a01b03198116909155905192169160069086908690808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094166001600160a01b03199094169390931790925550610c23905060038261102b565b610c2e60048361102b565b600280546000190190556040516001600160a01b038083169190841690869086908083838082843760408051939091018390038320602080855284018c905295507f7fa2fe506a0201656c1d87a8927899ad716ebd71b23fdabce40b56ae2205696394508b93508a92915081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b610cd2610548565b610d145760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001600160a01b038083166000908152600560205260409020541680610d845760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b610d8f60038261102b565b610d9a600383611014565b6001600160a01b0383811660008181526005602052604080822080546001600160a01b03191687861690811790915590519093851692917f78ef5fc29fe65855a5352e3954d6839f596542b47b3aeb40b84596358d06f09a91a4505050565b6060600082610e0b5750600254610e0e565b50815b606081604051908082528060200260200182016040528015610e3a578160200160208202803883390190505b5090506000856001600160a01b038116610e5b57610e586003610f61565b90505b8382101561066b576001600160a01b038116610e765761066b565b80838381518110610e8357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610eae600382610f80565b9050600182019150610e5b565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b610efd610548565b610f3f5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805260209190915260409020600101546001600160a01b031690565b6000610f8c8383610ff5565b610fd15760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6001600160a01b03166000908152602091909152604090205460ff1690565b611027826110218461110d565b8361112f565b5050565b6110358282610ff5565b61107a5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b03811661108d57611027565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b60008080526020829052604090205461010090046001600160a01b0316919050565b6111398382610ff5565b1561118e5760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111988383610ff5565b806111aa57506001600160a01b038216155b6111ef5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff191617905556fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058202404f2af812c86565d29c0a114533181e32f56b33e64dfff4ffa0bb8d6c78d460029", - "sourceMap": "268:6839:10:-;;;;;942:1;920:23;;;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;-1:-1:-1;;;;;595:6:13;;562:40;;942:1:10;;562:40:13;268:6839:10;;;;;;", - "deployedSourceMap": "268:6839:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;268:6839:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6271:146;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6271:146:10;-1:-1:-1;;;;;6271:146:10;;:::i;:::-;;;;-1:-1:-1;;;;;6271:146:10;;;;;;;;;;;;;;2166:177:13;;;:::i;:::-;;1688:137;;;:::i;672:77::-;;;:::i;1244:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;6607:168:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6607:168:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6607:168:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6607:168:10;;;;;;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;-1:-1;6607:168:10;;-1:-1:-1;6607:168:10;-1:-1:-1;6607:168:10;:::i;5297:772::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5297:772:10;;;;;;;;:::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;5297:772:10;;;;;;;;;;;;;;;;;1654:929;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1654:929:10;;;;;;;;;;:::i;3714:697::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3714:697:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3714:697:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3714:697:10;;;;;;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;-1:-1;3714:697:10;;-1:-1:-1;3714:697:10;-1:-1:-1;3714:697:10;:::i;2872:646::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2872:646:10;;;;;;;;;;:::i;4480:742::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4480:742:10;;;;;;;;:::i;6966:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6966:139:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6966:139:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6966:139:10;;;;;;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;-1:-1;6966:139:10;;-1:-1:-1;6966:139:10;-1:-1:-1;6966:139:10;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;6271:146:10:-;-1:-1:-1;;;;;6380:29:10;;;6344:8;6380:29;;;:14;:29;;;;;;;;6271:146::o;2166:177:13:-;1091:13;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:13;;;-1:-1:-1;;;;;2289:13:13;;2280:22;;;;2310:26;;;2166:177::o;1688:137::-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;6607:168:10:-;6688:8;6724:14;:43;6739:13;6753:12;;6739:27;;;;;30:3:-1;22:6;14;1:33;45:16;;;;6739:27:10;;;-1:-1:-1;;6739:27:10;;;;;;;;;;;;;-1:-1:-1;;;;;6739:27:10;;;6724:43;;;;;;;;;-1:-1:-1;;6724:43:10;;-1:-1:-1;6724:43:10;;;;6607:168;-1:-1:-1;;;6607:168:10:o;5297:772::-;5378:16;5406:13;5433:11;5429:106;;-1:-1:-1;5468:11:10;;5429:106;;;-1:-1:-1;5518:6:10;5429:106;5545:30;5592:5;5578:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5578:20:10;-1:-1:-1;5545:53:10;-1:-1:-1;5658:9:10;5696:6;-1:-1:-1;;;;;5716:18:10;;5712:90;;5757:34;5774:16;5757;:34::i;:::-;5750:41;;5712:90;5823:5;5819:1;:9;5812:221;;;-1:-1:-1;;;;;5848:18:10;;5844:62;;5886:5;;5844:62;5938:4;5919:13;5933:1;5919:16;;;;;;;;;;;;;:23;-1:-1:-1;;;;;5919:23:10;;;-1:-1:-1;;;;;5919:23:10;;;;;5963:39;5979:16;5997:4;5963:15;:39::i;:::-;5956:46;;6021:1;6016:6;;;;5812:221;;;-1:-1:-1;6049:13:10;;5297:772;-1:-1:-1;;;;;5297:772:10:o;1654:929::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1840:49:10;1860:11;1873:15;1840:19;:49::i;:::-;1839:50;1831:89;;;;;-1:-1:-1;;;;;1831:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1938:29:10;;;1979:3;1938:29;;;:14;:29;;;;;;;:45;1930:82;;;;;-1:-1:-1;;;;;1930:82:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:20;2058:13;-1:-1:-1;;;;;2045:34:10;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2045:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2045:36:10;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2045:36:10;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2045:36:10;;;;;;-1:-1:-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;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;2045:36:10;;;;;;2022:59;;2132:3;-1:-1:-1;;;;;2099:37:10;:13;2113:6;2099:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2099:21:10;;;;;-1:-1:-1;2099:21:10;;;;;;;;;;;-1:-1:-1;;;;;2099:21:10;:37;;;;;-1:-1:-1;2091:75:10;;-1:-1:-1;2091:75:10;;;;-1:-1:-1;;;;;2091:75:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:47;2230:11;2243:15;2212:17;:47::i;:::-;2311:50;2329:16;2347:13;2311:17;:50::i;:::-;2396:13;2372;2386:6;2372:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2372:21:10;;;;;-1:-1:-1;2372:21:10;;;;;;;;;;;:37;;-1:-1:-1;;;;;;2372:37:10;;;-1:-1:-1;;;;;2372:37:10;;;;;;;2419:29;;;-1:-1:-1;2419:29:10;;;:14;:29;;;;;;:47;;;;;;;;;;;;;2476:11;:16;;-1:-1:-1;2476:16:10;;;2508:68;;2419:29;;2508:68;;-1:-1:-1;2372:21:10;-1:-1:-1;2372:21:10;;2508:68;;;;2372:21;2508:68;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2508:68:10;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2508:68:10;;-1:-1:-1;2508:68:10;;;;-1:-1:-1;2508:68:10;;;;;;;;;;;-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;2508:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:13;1654:929:10;;:::o;3714:697::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3824:20:10;3847:13;3861:7;;3847:22;;;;;30:3:-1;22:6;14;1:33;45:16;;;;3847:22:10;;;-1:-1:-1;;3847:22:10;;;;;;;;;;;;-1:-1:-1;;;;;3847:22:10;;-1:-1:-1;;;3887:28:10;3879:62;;;;;-1:-1:-1;;;;;3879:62:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4012:28:10;;;3987:22;4012:28;;;:14;:28;;;;;;;;-1:-1:-1;;;;;;4087:43:10;;;;;4140:22;;4012:28;;;4140:13;;4154:7;;;;4140:22;4154:7;;;;4140:22;1:33:-1;45:16;;;;4140:22:10;;;-1:-1:-1;;4140:22:10;;;;;;;;;;;:37;;-1:-1:-1;;;;;4140:37:10;;;;-1:-1:-1;;;;;;4140:37:10;;;;;;;;;;-1:-1:-1;4187:46:10;;-1:-1:-1;4205:11:10;4218:14;4187:17;:46::i;:::-;4243:49;4261:16;4279:12;4243:17;:49::i;:::-;4302:11;:16;;-1:-1:-1;;4302:16:10;;;4334:70;;-1:-1:-1;;;;;4334:70:10;;;;;;;;4366:7;;;;4334:70;4366:7;;;;4334:70;1:33:-1;4334:70:10;;;45:16:-1;;;;4334:70:10;;;;;;;;;;;;;;;-1:-1:-1;4334:70:10;;-1:-1:-1;4357:7:10;;-1:-1:-1;4357:7:10;;4334:70;-1:-1:-1;4334:70:10;;;;4357:7;;;;4334:70;1:33:-1;99:1;81:16;;;74:27;4334:70:10;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;4334:70:10;;;;-1:-1:-1;4334:70:10;;-1:-1:-1;;;;4334:70:10;923:1:13;;3714:697:10;;:::o;2872:646::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;3052:29:10;;;3027:22;3052:29;;;:14;:29;;;;;;;3099:45;3091:78;;;;;-1:-1:-1;;;;;3091:78:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3218:46;3236:11;3249:14;3218:17;:46::i;:::-;3316:50;3334:11;3347:18;3316:17;:50::i;:::-;-1:-1:-1;;;;;3377:29:10;;;;;;;:14;:29;;;;;;:50;;-1:-1:-1;;;;;;3377:50:10;;;;;;;;;;3443:68;;3377:50;;3443:68;;;3377:29;3443:68;;;923:1:13;2872:646:10;;:::o;4480:742::-;4556:16;4584:13;4611:11;4607:106;;-1:-1:-1;4646:11:10;;4607:106;;;-1:-1:-1;4696:6:10;4607:106;4723:25;4765:5;4751:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4751:20:10;-1:-1:-1;4723:48:10;-1:-1:-1;4831:9:10;4869:6;-1:-1:-1;;;;;4889:18:10;;4885:85;;4930:29;4947:11;4930:16;:29::i;:::-;4923:36;;4885:85;4991:5;4987:1;:9;4980:211;;;-1:-1:-1;;;;;5016:18:10;;5012:62;;5054:5;;5012:62;5101:4;5087:8;5096:1;5087:11;;;;;;;;;;;;;:18;-1:-1:-1;;;;;5087:18:10;;;-1:-1:-1;;;;;5087:18:10;;;;;5126:34;5142:11;5155:4;5126:15;:34::i;:::-;5119:41;;5179:1;5174:6;;;;4980:211;;6966:139;7045:7;7071:13;7085:12;;7071:27;;;;;30:3:-1;22:6;14;1:33;45:16;;;;7071:27:10;;;-1:-1:-1;;7071:27:10;;;;;;;;;;;;-1:-1:-1;;;;;7071:27:10;;-1:-1:-1;;;6966:139:10;;;;:::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:13;-1:-1:-1;;;;;2045:24:13;;;;;;;;;;1975:101::o;4696:110:16:-;4753:7;4779:15;;;;;;;;;;;:20;;;-1:-1:-1;;;;;4779:20:16;;4696:110::o;5148:177::-;5218:7;5245:20;5254:4;5260;5245:8;:20::i;:::-;5237:44;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5298:15:16;;;:9;:15;;;;;;;;;;;;:20;;;;;5148:177::o;4334:126::-;-1:-1:-1;;;;;4431:15:16;4408:4;4431:15;;;;;;;;;;;:22;;;;4334:126::o;3808:163::-;3930:34;3942:4;3948:9;3952:4;3948:3;:9::i;:::-;3959:4;3930:11;:34::i;:::-;3808:163;;:::o;2757:514::-;2833:20;2842:4;2848;2833:8;:20::i;:::-;2825:44;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2883:12:16;;2879:49;;2911:7;;2879:49;-1:-1:-1;;;;;2949:15:16;;;2937:9;2949:15;;;;;;;;;;;;:24;;;2995:20;;;;;2949:24;;;;;;;3026:12;;;;;;:17;;;:21;;2995:20;;;;-1:-1:-1;;;;;;3026:21:16;;;;;;;;3057:12;;;;;;:25;;-1:-1:-1;;;;;;3057:25:16;;;;;;;;3202:15;;;;:30;;-1:-1:-1;;;;;;3242:22:16;;;;;;;;2757:514::o;5030:112::-;5085:7;5111:15;;;;;;;;;;:24;;;;-1:-1:-1;;;;;5111:24:16;5030:112;;;:::o;1906:541::-;2007:23;2016:4;2022:7;2007:8;:23::i;:::-;2006:24;1998:52;;;;;-1:-1:-1;;;;;1998:52:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:22;2077:4;2083:6;2068:8;:22::i;:::-;:40;;;-1:-1:-1;;;;;;2094:14:16;;;2068:40;2060:64;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2208:17:16;;;2196:9;2208:17;;;;;;;;;;;;:22;;;;;;2241:18;;;;;;;;;:36;;-1:-1:-1;;;;;;2241:36:16;;;2208:22;2241:36;;;;;;2287:23;;;:27;;2208:22;;;;-1:-1:-1;;;;;;2287:27:16;;;;;;;;2324:32;;;;;;;;;;2366:12;;;;;;:31;;;;;;;;;;;;;;;2408:18;;;;:32;;-1:-1:-1;;2408:32:16;;;;1906:541::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"../libraries/Claimable.sol\";\nimport \"./ERC20Shifted.sol\";\nimport \"../libraries/LinkedList.sol\";\nimport \"./IShifter.sol\";\n\n/// @notice ShifterRegistry is a mapping from assets to their associated\n/// ERC20Shifted and Shifter contracts.\ncontract ShifterRegistry is Claimable {\n\n /// @dev The symbol is included twice because strings have to be hashed\n /// first in order to be used as a log index/topic.\n event LogShifterRegistered(string _symbol, string indexed _indexedSymbol, address indexed _tokenAddress, address indexed _shifterAddress);\n event LogShifterDeregistered(string _symbol, string indexed _indexedSymbol, address indexed _tokenAddress, address indexed _shifterAddress);\n event LogShifterUpdated(address indexed _tokenAddress, address indexed _currentShifterAddress, address indexed _newShifterAddress);\n\n /// @notice The number of shifters registered\n uint256 numShifters = 0;\n\n /// @notice A list of shifter contracts\n LinkedList.List private shifterList;\n\n /// @notice A list of shifted token contracts\n LinkedList.List private shiftedTokenList;\n\n /// @notice A map of token addresses to canonical shifter addresses\n mapping (address=>address) private shifterByToken;\n\n /// @notice A map of token symbols to canonical shifter addresses\n mapping (string=>address) private tokenBySymbol;\n\n /// @notice Allow the owner to set the shifter address for a given\n /// ERC20Shifted token contract.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n /// @param _shifterAddress The address of the Shifter contract.\n function setShifter(address _tokenAddress, address _shifterAddress) external onlyOwner {\n // Check that token, shifter and symbol haven't already been registered\n require(!LinkedList.isInList(shifterList, _shifterAddress), \"shifter already registered\");\n require(shifterByToken[_tokenAddress] == address(0x0), \"token already registered\");\n string memory symbol = ERC20Shifted(_tokenAddress).symbol();\n require(tokenBySymbol[symbol] == address(0x0), \"symbol already registered\");\n\n // Add to list of shifters\n LinkedList.append(shifterList, _shifterAddress);\n\n // Add to list of shifted tokens\n LinkedList.append(shiftedTokenList, _tokenAddress);\n\n tokenBySymbol[symbol] = _tokenAddress;\n shifterByToken[_tokenAddress] = _shifterAddress;\n numShifters += 1;\n\n emit LogShifterRegistered(symbol, symbol, _tokenAddress, _shifterAddress);\n }\n\n /// @notice Allow the owner to update the shifter address for a given\n /// ERC20Shifted token contract.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n /// @param _newShifterAddress The updated address of the Shifter contract.\n function updateShifter(address _tokenAddress, address _newShifterAddress) external onlyOwner {\n // Check that token, shifter are registered\n address currentShifter = shifterByToken[_tokenAddress];\n require(shifterByToken[_tokenAddress] != address(0x0), \"token not registered\");\n\n // Remove to list of shifters\n LinkedList.remove(shifterList, currentShifter);\n\n // Add to list of shifted tokens\n LinkedList.append(shifterList, _newShifterAddress);\n\n shifterByToken[_tokenAddress] = _newShifterAddress;\n\n emit LogShifterUpdated(_tokenAddress, currentShifter, _newShifterAddress);\n }\n\n /// @notice Allows the owner to remove the shifter address for a given\n /// ERC20shifter token contract.\n ///\n /// @param _symbol The symbol of the token to deregister.\n function removeShifter(string calldata _symbol) external onlyOwner {\n // Look up token address\n address tokenAddress = tokenBySymbol[_symbol];\n require(tokenAddress != address(0x0), \"symbol not registered\");\n\n // Look up shifter address\n address shifterAddress = shifterByToken[tokenAddress];\n\n // Remove token and shifter\n shifterByToken[tokenAddress] = address(0x0);\n tokenBySymbol[_symbol] = address(0x0);\n LinkedList.remove(shifterList, shifterAddress);\n LinkedList.remove(shiftedTokenList, tokenAddress);\n numShifters -= 1;\n\n emit LogShifterDeregistered(_symbol, _symbol, tokenAddress, shifterAddress);\n }\n\n /// @dev To get all the registered shifters use count = 0.\n function getShifters(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count;\n if (_count == 0) {\n count = numShifters;\n } else {\n count = _count;\n }\n\n address[] memory shifters = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = LinkedList.begin(shifterList);\n }\n\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n shifters[n] = next;\n next = LinkedList.next(shifterList, next);\n n += 1;\n }\n return shifters;\n }\n\n /// @dev To get all the registered shifted tokens use count = 0.\n function getShiftedTokens(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count;\n if (_count == 0) {\n count = numShifters;\n } else {\n count = _count;\n }\n\n address[] memory shiftedTokens = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = LinkedList.begin(shiftedTokenList);\n }\n\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n shiftedTokens[n] = next;\n next = LinkedList.next(shiftedTokenList, next);\n n += 1;\n }\n return shiftedTokens;\n }\n\n /// @notice Returns the Shifter address for the given ERC20Shifted token\n /// contract address.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n function getShifterByToken(address _tokenAddress) external view returns (IShifter) {\n return IShifter(shifterByToken[_tokenAddress]);\n }\n\n /// @notice Returns the Shifter address for the given ERC20Shifted token\n /// symbol.\n ///\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.\n function getShifterBySymbol(string calldata _tokenSymbol) external view returns (IShifter) {\n return IShifter(shifterByToken[tokenBySymbol[_tokenSymbol]]);\n }\n\n /// @notice Returns the ERC20Shifted address for the given token symbol.\n ///\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n /// lookup.\n function getTokenBySymbol(string calldata _tokenSymbol) external view returns (address) {\n return tokenBySymbol[_tokenSymbol];\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "exportedSymbols": { - "ShifterRegistry": [ - 3809 - ] - }, - "id": 3810, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3321, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 3322, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 4282, - "src": "25:36:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 3323, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2877, - "src": "62:28:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 3324, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 5059, - "src": "91:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol", - "file": "./IShifter.sol", - "id": 3325, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2902, - "src": "129:24:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3326, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "296:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 3327, - "nodeType": "InheritanceSpecifier", - "src": "296:9:10" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice ShifterRegistry is a mapping from assets to their associated\n ERC20Shifted and Shifter contracts.", - "fullyImplemented": true, - "id": 3809, - "linearizedBaseContracts": [ - 3809, - 4281 - ], - "name": "ShifterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev The symbol is included twice because strings have to be hashed\n first in order to be used as a log index/topic.", - "id": 3337, - "name": "LogShifterRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3329, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "472:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3328, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3331, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "488:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3330, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "488:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3333, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "519:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "519:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3335, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "550:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3334, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "550:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:111:10" - }, - "src": "445:138:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3347, - "name": "LogShifterDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "617:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3338, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "617:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "633:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "633:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3343, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "664:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "664:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3345, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "695:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:111:10" - }, - "src": "588:140:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3355, - "name": "LogShifterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3349, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "757:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3351, - "indexed": true, - "name": "_currentShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "788:38:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3353, - "indexed": true, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "828:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "756:107:10" - }, - "src": "733:131:10" - }, - { - "constant": false, - "id": 3358, - "name": "numShifters", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "920:23:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "920:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 3357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3360, - "name": "shifterList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "994:35:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3359, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "994:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3362, - "name": "shiftedTokenList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1086:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3361, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "1086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3366, - "name": "shifterByToken", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1205:49:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3365, - "keyType": { - "id": 3363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1205:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3364, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1223:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3370, - "name": "tokenBySymbol", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1331:47:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "typeName": { - "id": 3369, - "keyType": { - "id": 3367, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "1331:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "valueType": { - "id": 3368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1348:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 3456, - "nodeType": "Block", - "src": "1741:842:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1839:50:10", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3382, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "1860:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3383, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "1873:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3380, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "1840:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isInList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "1840:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (bool)" - } - }, - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:49:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7368696674657220616c72656164792072656769737465726564", - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1891:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - }, - "value": "shifter already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - } - ], - "id": 3379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1831:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "1831:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3390, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "1938:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3392, - "indexExpression": { - "argumentTypes": null, - "id": 3391, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "1953:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1938:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1971:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1971:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1938:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 3397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 3389, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1930:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3399, - "nodeType": "ExpressionStatement", - "src": "1930:82:10" - }, - { - "assignments": [ - 3401 - ], - "declarations": [ - { - "constant": false, - "id": 3401, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3456, - "src": "2022:20:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3400, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2022:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3407, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3403, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2058:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3402, - "name": "ERC20Shifted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "2045:12:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Shifted_$2864_$", - "typeString": "type(contract ERC20Shifted)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:27:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7947, - "src": "2045:34:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 3406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:36:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3409, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2099:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3411, - "indexExpression": { - "argumentTypes": null, - "id": 3410, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2113:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2132:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2099:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c20616c72656164792072656769737465726564", - "id": 3416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2138:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - }, - "value": "symbol already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - } - ], - "id": 3408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "2091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:75:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3418, - "nodeType": "ExpressionStatement", - "src": "2091:75:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "2230:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3423, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2243:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3419, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2212:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2212:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3425, - "nodeType": "ExpressionStatement", - "src": "2212:47:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3429, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "2329:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3430, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2347:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3426, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2311:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2311:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "2311:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3433, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2372:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3435, - "indexExpression": { - "argumentTypes": null, - "id": 3434, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2386:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2372:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3436, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2396:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2372:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3438, - "nodeType": "ExpressionStatement", - "src": "2372:37:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3439, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "2419:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3441, - "indexExpression": { - "argumentTypes": null, - "id": 3440, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2434:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3442, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2451:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2419:47:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3444, - "nodeType": "ExpressionStatement", - "src": "2419:47:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3445, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "2476:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2491:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2476:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3448, - "nodeType": "ExpressionStatement", - "src": "2476:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3450, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2529:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3451, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2537:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3452, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2545:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3453, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2560:15:10", - "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_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3449, - "name": "LogShifterRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "2508:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2508:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3455, - "nodeType": "EmitStatement", - "src": "2503:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to set the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _shifterAddress The address of the Shifter contract.", - "id": 3457, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3377, - "modifierName": { - "argumentTypes": null, - "id": 3376, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "1731:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1731:9:10" - } - ], - "name": "setShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3372, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1674:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3374, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1697:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3373, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1697:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:48:10" - }, - "returnParameters": { - "id": 3378, - "nodeType": "ParameterList", - "parameters": [], - "src": "1741:0:10" - }, - "scope": 3809, - "src": "1654:929:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3509, - "nodeType": "Block", - "src": "2965:553:10", - "statements": [ - { - "assignments": [ - 3467 - ], - "declarations": [ - { - "constant": false, - "id": 3467, - "name": "currentShifter", - "nodeType": "VariableDeclaration", - "scope": 3509, - "src": "3027:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3027:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3471, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3468, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3052:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3470, - "indexExpression": { - "argumentTypes": null, - "id": 3469, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3067:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3027:54:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3473, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3099:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3475, - "indexExpression": { - "argumentTypes": null, - "id": 3474, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3114:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3099:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3132:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3132:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3099:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3146:22:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 3472, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "3091:78:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3486, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3236:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3487, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3249:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3483, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3218:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "3218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3218:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3489, - "nodeType": "ExpressionStatement", - "src": "3218:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3493, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3334:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3494, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3347:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3490, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3316:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "3316:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3316:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3496, - "nodeType": "ExpressionStatement", - "src": "3316:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3377:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3392:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3377:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3500, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3409:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3377:50:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3502, - "nodeType": "ExpressionStatement", - "src": "3377:50:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3504, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3461:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3505, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3476:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3506, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3492:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3503, - "name": "LogShifterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "3443:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3443:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3508, - "nodeType": "EmitStatement", - "src": "3438:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to update the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _newShifterAddress The updated address of the Shifter contract.", - "id": 3510, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3464, - "modifierName": { - "argumentTypes": null, - "id": 3463, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "2955:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2955:9:10" - } - ], - "name": "updateShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3459, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2895:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2895:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3461, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2918:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2894:51:10" - }, - "returnParameters": { - "id": 3465, - "nodeType": "ParameterList", - "parameters": [], - "src": "2965:0:10" - }, - "scope": 3809, - "src": "2872:646:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3579, - "nodeType": "Block", - "src": "3781:630:10", - "statements": [ - { - "assignments": [ - 3518 - ], - "declarations": [ - { - "constant": false, - "id": 3518, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3824:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3522, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "3847:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "3861:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3847:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3824:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3524, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3887:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3911:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3887:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c206e6f742072656769737465726564", - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:23:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - }, - "value": "symbol not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - } - ], - "id": 3523, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3879:62:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3531, - "nodeType": "ExpressionStatement", - "src": "3879:62:10" - }, - { - "assignments": [ - 3533 - ], - "declarations": [ - { - "constant": false, - "id": 3533, - "name": "shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3987:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3987:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3537, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3534, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4012:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3536, - "indexExpression": { - "argumentTypes": null, - "id": 3535, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4027:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3987:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3538, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4087:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3540, - "indexExpression": { - "argumentTypes": null, - "id": 3539, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4087:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4126:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4087:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3545, - "nodeType": "ExpressionStatement", - "src": "4087:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3546, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "4140:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3548, - "indexExpression": { - "argumentTypes": null, - "id": 3547, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4140:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4165:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4140:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3553, - "nodeType": "ExpressionStatement", - "src": "4140:37:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4205:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3558, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4218:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3554, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4187:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4187:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4187:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3560, - "nodeType": "ExpressionStatement", - "src": "4187:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3564, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "4261:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3565, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4279:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3561, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4243:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4243:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4243:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3567, - "nodeType": "ExpressionStatement", - "src": "4243:49:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3568, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4302:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4302:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3571, - "nodeType": "ExpressionStatement", - "src": "4302:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3573, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4357:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3574, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4366:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3575, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4375:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3576, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4389:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3572, - "name": "LogShifterDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "4334:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4334:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "EmitStatement", - "src": "4329:75:10" - } - ] - }, - "documentation": "@notice Allows the owner to remove the shifter address for a given\n ERC20shifter token contract.\n\n /// @param _symbol The symbol of the token to deregister.", - "id": 3580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3515, - "modifierName": { - "argumentTypes": null, - "id": 3514, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3771:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3771:9:10" - } - ], - "name": "removeShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3512, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3580, - "src": "3737:23:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3511, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3737:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:25:10" - }, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [], - "src": "3781:0:10" - }, - "scope": 3809, - "src": "3714:697:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3672, - "nodeType": "Block", - "src": "4574:648:10", - "statements": [ - { - "assignments": [ - 3591 - ], - "declarations": [ - { - "constant": false, - "id": 3591, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4584:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3592, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4584:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3593, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4611:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3605, - "nodeType": "Block", - "src": "4674:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3601, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4688:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3602, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4688:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "4688:14:10" - } - ] - }, - "id": 3606, - "nodeType": "IfStatement", - "src": "4607:106:10", - "trueBody": { - "id": 3600, - "nodeType": "Block", - "src": "4624:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3596, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3597, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4646:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4638:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "4638:19:10" - } - ] - } - }, - { - "assignments": [ - 3610 - ], - "declarations": [ - { - "constant": false, - "id": 3610, - "name": "shifters", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4723:25:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3609, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4723:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3616, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3614, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4765:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4751:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3611, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3612, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4755:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4723:48:10" - }, - { - "assignments": [ - 3618 - ], - "declarations": [ - { - "constant": false, - "id": 3618, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4831:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3620, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4843:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:13:10" - }, - { - "assignments": [ - 3622 - ], - "declarations": [ - { - "constant": false, - "id": 3622, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4854:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4854:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3624, - "initialValue": { - "argumentTypes": null, - "id": 3623, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3582, - "src": "4869:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4854:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3625, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4889:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4897:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4889:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3638, - "nodeType": "IfStatement", - "src": "4885:85:10", - "trueBody": { - "id": 3637, - "nodeType": "Block", - "src": "4909:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4923:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3633, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4947:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4930:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "4930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4923:36:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3636, - "nodeType": "ExpressionStatement", - "src": "4923:36:10" - } - ] - } - }, - { - "body": { - "id": 3668, - "nodeType": "Block", - "src": "4998:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3642, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5016:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5032:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5024:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3649, - "nodeType": "IfStatement", - "src": "5012:62:10", - "trueBody": { - "id": 3648, - "nodeType": "Block", - "src": "5036:38:10", - "statements": [ - { - "id": 3647, - "nodeType": "Break", - "src": "5054:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3650, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5087:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3652, - "indexExpression": { - "argumentTypes": null, - "id": 3651, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5096:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5087:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3653, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5101:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5087:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3655, - "nodeType": "ExpressionStatement", - "src": "5087:18:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3656, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5119:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3659, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "5142:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3660, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5155:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3657, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5126:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3663, - "nodeType": "ExpressionStatement", - "src": "5119:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3664, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5174:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5179:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5174:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3667, - "nodeType": "ExpressionStatement", - "src": "5174:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3639, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "4987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3640, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4991:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4987:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3669, - "nodeType": "WhileStatement", - "src": "4980:211:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3670, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5207:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3589, - "id": 3671, - "nodeType": "Return", - "src": "5200:15:10" - } - ] - }, - "documentation": "@dev To get all the registered shifters use count = 0.", - "id": 3673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3582, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4501:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4501:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3584, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4517:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4500:32:10" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3588, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4556:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4556:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3587, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4556:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4555:18:10" - }, - "scope": 3809, - "src": "4480:742:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3765, - "nodeType": "Block", - "src": "5396:673:10", - "statements": [ - { - "assignments": [ - 3684 - ], - "declarations": [ - { - "constant": false, - "id": 3684, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5406:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3685, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5406:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3686, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5433:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5443:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5433:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3698, - "nodeType": "Block", - "src": "5496:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3694, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5510:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3695, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5518:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5510:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "5510:14:10" - } - ] - }, - "id": 3699, - "nodeType": "IfStatement", - "src": "5429:106:10", - "trueBody": { - "id": 3693, - "nodeType": "Block", - "src": "5446:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3689, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5460:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3690, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "5468:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5460:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3692, - "nodeType": "ExpressionStatement", - "src": "5460:19:10" - } - ] - } - }, - { - "assignments": [ - 3703 - ], - "declarations": [ - { - "constant": false, - "id": 3703, - "name": "shiftedTokens", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5545:30:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3702, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5545:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3709, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5592:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5578:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5582:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5582:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5578:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5545:53:10" - }, - { - "assignments": [ - 3711 - ], - "declarations": [ - { - "constant": false, - "id": 3711, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5658:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3713, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5670:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5658:13:10" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5681:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3714, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3717, - "initialValue": { - "argumentTypes": null, - "id": 3716, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "5696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5681:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3718, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5716:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5732:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5724:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5716:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3731, - "nodeType": "IfStatement", - "src": "5712:90:10", - "trueBody": { - "id": 3730, - "nodeType": "Block", - "src": "5736:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3723, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5750:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3726, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5774:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3724, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "5757:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5757:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5750:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3729, - "nodeType": "ExpressionStatement", - "src": "5750:41:10" - } - ] - } - }, - { - "body": { - "id": 3761, - "nodeType": "Block", - "src": "5830:203:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3735, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5848:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5864:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5856:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5848:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3742, - "nodeType": "IfStatement", - "src": "5844:62:10", - "trueBody": { - "id": 3741, - "nodeType": "Block", - "src": "5868:38:10", - "statements": [ - { - "id": 3740, - "nodeType": "Break", - "src": "5886:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3743, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "5919:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3745, - "indexExpression": { - "argumentTypes": null, - "id": 3744, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5933:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5919:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5938:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5919:23:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3748, - "nodeType": "ExpressionStatement", - "src": "5919:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3749, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5956:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3752, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3753, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5997:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3750, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5963:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5963:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5956:46:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "5956:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3757, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "6016:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6021:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6016:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3760, - "nodeType": "ExpressionStatement", - "src": "6016:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3732, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3733, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5823:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5819:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3762, - "nodeType": "WhileStatement", - "src": "5812:221:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3763, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6049:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3682, - "id": 3764, - "nodeType": "Return", - "src": "6042:20:10" - } - ] - }, - "documentation": "@dev To get all the registered shifted tokens use count = 0.", - "id": 3766, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShiftedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3675, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5323:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3677, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5339:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5322:32:10" - }, - "returnParameters": { - "id": 3682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3681, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5378:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5378:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3680, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5378:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5377:18:10" - }, - "scope": 3809, - "src": "5297:772:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "6354:63:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6380:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "6395:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6380:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3773, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6371:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6371:39:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3772, - "id": 3778, - "nodeType": "Return", - "src": "6364:46:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n contract address.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.", - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterByToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3768, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6298:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6298:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6297:23:10" - }, - "returnParameters": { - "id": 3772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3771, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6344:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3770, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6344:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:10:10" - }, - "scope": 3809, - "src": "6271:146:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3795, - "nodeType": "Block", - "src": "6698:77:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3788, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6724:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3792, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3789, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "6739:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3791, - "indexExpression": { - "argumentTypes": null, - "id": 3790, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "6753:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6739:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6724:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3787, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6715:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6715:53:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3786, - "id": 3794, - "nodeType": "Return", - "src": "6708:60:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.", - "id": 3796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6635:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3781, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6635:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6634:30:10" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3785, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6688:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3784, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6688:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6687:10:10" - }, - "scope": 3809, - "src": "6607:168:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3807, - "nodeType": "Block", - "src": "7054:51:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3803, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "7071:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3805, - "indexExpression": { - "argumentTypes": null, - "id": 3804, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3798, - "src": "7085:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7071:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3802, - "id": 3806, - "nodeType": "Return", - "src": "7064:34:10" - } - ] - }, - "documentation": "@notice Returns the ERC20Shifted address for the given token symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n lookup.", - "id": 3808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTokenBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3798, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "6992:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3797, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6992:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6991:30:10" - }, - "returnParameters": { - "id": 3802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3801, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "7045:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7045:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7044:9:10" - }, - "scope": 3809, - "src": "6966:139:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3810, - "src": "268:6839:10" - } - ], - "src": "0:7107:10" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "exportedSymbols": { - "ShifterRegistry": [ - 3809 - ] - }, - "id": 3810, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3321, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 3322, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 4282, - "src": "25:36:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 3323, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2877, - "src": "62:28:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 3324, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 5059, - "src": "91:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol", - "file": "./IShifter.sol", - "id": 3325, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2902, - "src": "129:24:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3326, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "296:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 3327, - "nodeType": "InheritanceSpecifier", - "src": "296:9:10" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice ShifterRegistry is a mapping from assets to their associated\n ERC20Shifted and Shifter contracts.", - "fullyImplemented": true, - "id": 3809, - "linearizedBaseContracts": [ - 3809, - 4281 - ], - "name": "ShifterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev The symbol is included twice because strings have to be hashed\n first in order to be used as a log index/topic.", - "id": 3337, - "name": "LogShifterRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3329, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "472:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3328, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3331, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "488:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3330, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "488:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3333, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "519:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "519:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3335, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "550:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3334, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "550:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:111:10" - }, - "src": "445:138:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3347, - "name": "LogShifterDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "617:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3338, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "617:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "633:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "633:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3343, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "664:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "664:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3345, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "695:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:111:10" - }, - "src": "588:140:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3355, - "name": "LogShifterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3349, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "757:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3351, - "indexed": true, - "name": "_currentShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "788:38:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3353, - "indexed": true, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "828:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "756:107:10" - }, - "src": "733:131:10" - }, - { - "constant": false, - "id": 3358, - "name": "numShifters", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "920:23:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "920:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 3357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3360, - "name": "shifterList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "994:35:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3359, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "994:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3362, - "name": "shiftedTokenList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1086:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3361, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "1086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3366, - "name": "shifterByToken", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1205:49:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3365, - "keyType": { - "id": 3363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1205:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3364, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1223:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3370, - "name": "tokenBySymbol", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1331:47:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "typeName": { - "id": 3369, - "keyType": { - "id": 3367, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "1331:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "valueType": { - "id": 3368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1348:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 3456, - "nodeType": "Block", - "src": "1741:842:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1839:50:10", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3382, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "1860:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3383, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "1873:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3380, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "1840:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isInList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "1840:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (bool)" - } - }, - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:49:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7368696674657220616c72656164792072656769737465726564", - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1891:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - }, - "value": "shifter already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - } - ], - "id": 3379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1831:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "1831:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3390, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "1938:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3392, - "indexExpression": { - "argumentTypes": null, - "id": 3391, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "1953:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1938:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1971:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1971:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1938:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 3397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 3389, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1930:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3399, - "nodeType": "ExpressionStatement", - "src": "1930:82:10" - }, - { - "assignments": [ - 3401 - ], - "declarations": [ - { - "constant": false, - "id": 3401, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3456, - "src": "2022:20:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3400, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2022:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3407, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3403, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2058:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3402, - "name": "ERC20Shifted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "2045:12:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Shifted_$2864_$", - "typeString": "type(contract ERC20Shifted)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:27:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7947, - "src": "2045:34:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 3406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:36:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3409, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2099:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3411, - "indexExpression": { - "argumentTypes": null, - "id": 3410, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2113:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2132:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2099:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c20616c72656164792072656769737465726564", - "id": 3416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2138:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - }, - "value": "symbol already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - } - ], - "id": 3408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "2091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:75:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3418, - "nodeType": "ExpressionStatement", - "src": "2091:75:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "2230:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3423, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2243:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3419, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2212:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2212:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3425, - "nodeType": "ExpressionStatement", - "src": "2212:47:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3429, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "2329:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3430, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2347:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3426, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2311:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2311:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "2311:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3433, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2372:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3435, - "indexExpression": { - "argumentTypes": null, - "id": 3434, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2386:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2372:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3436, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2396:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2372:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3438, - "nodeType": "ExpressionStatement", - "src": "2372:37:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3439, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "2419:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3441, - "indexExpression": { - "argumentTypes": null, - "id": 3440, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2434:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3442, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2451:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2419:47:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3444, - "nodeType": "ExpressionStatement", - "src": "2419:47:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3445, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "2476:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2491:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2476:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3448, - "nodeType": "ExpressionStatement", - "src": "2476:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3450, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2529:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3451, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2537:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3452, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2545:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3453, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2560:15:10", - "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_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3449, - "name": "LogShifterRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "2508:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2508:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3455, - "nodeType": "EmitStatement", - "src": "2503:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to set the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _shifterAddress The address of the Shifter contract.", - "id": 3457, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3377, - "modifierName": { - "argumentTypes": null, - "id": 3376, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "1731:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1731:9:10" - } - ], - "name": "setShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3372, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1674:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3374, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1697:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3373, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1697:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:48:10" - }, - "returnParameters": { - "id": 3378, - "nodeType": "ParameterList", - "parameters": [], - "src": "1741:0:10" - }, - "scope": 3809, - "src": "1654:929:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3509, - "nodeType": "Block", - "src": "2965:553:10", - "statements": [ - { - "assignments": [ - 3467 - ], - "declarations": [ - { - "constant": false, - "id": 3467, - "name": "currentShifter", - "nodeType": "VariableDeclaration", - "scope": 3509, - "src": "3027:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3027:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3471, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3468, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3052:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3470, - "indexExpression": { - "argumentTypes": null, - "id": 3469, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3067:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3027:54:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3473, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3099:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3475, - "indexExpression": { - "argumentTypes": null, - "id": 3474, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3114:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3099:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3132:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3132:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3099:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3146:22:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 3472, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "3091:78:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3486, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3236:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3487, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3249:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3483, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3218:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "3218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3218:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3489, - "nodeType": "ExpressionStatement", - "src": "3218:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3493, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3334:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3494, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3347:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3490, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3316:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "3316:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3316:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3496, - "nodeType": "ExpressionStatement", - "src": "3316:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3377:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3392:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3377:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3500, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3409:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3377:50:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3502, - "nodeType": "ExpressionStatement", - "src": "3377:50:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3504, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3461:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3505, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3476:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3506, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3492:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3503, - "name": "LogShifterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "3443:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3443:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3508, - "nodeType": "EmitStatement", - "src": "3438:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to update the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _newShifterAddress The updated address of the Shifter contract.", - "id": 3510, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3464, - "modifierName": { - "argumentTypes": null, - "id": 3463, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "2955:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2955:9:10" - } - ], - "name": "updateShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3459, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2895:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2895:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3461, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2918:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2894:51:10" - }, - "returnParameters": { - "id": 3465, - "nodeType": "ParameterList", - "parameters": [], - "src": "2965:0:10" - }, - "scope": 3809, - "src": "2872:646:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3579, - "nodeType": "Block", - "src": "3781:630:10", - "statements": [ - { - "assignments": [ - 3518 - ], - "declarations": [ - { - "constant": false, - "id": 3518, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3824:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3522, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "3847:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "3861:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3847:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3824:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3524, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3887:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3911:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3887:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c206e6f742072656769737465726564", - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:23:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - }, - "value": "symbol not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - } - ], - "id": 3523, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3879:62:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3531, - "nodeType": "ExpressionStatement", - "src": "3879:62:10" - }, - { - "assignments": [ - 3533 - ], - "declarations": [ - { - "constant": false, - "id": 3533, - "name": "shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3987:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3987:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3537, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3534, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4012:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3536, - "indexExpression": { - "argumentTypes": null, - "id": 3535, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4027:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3987:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3538, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4087:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3540, - "indexExpression": { - "argumentTypes": null, - "id": 3539, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4087:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4126:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4087:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3545, - "nodeType": "ExpressionStatement", - "src": "4087:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3546, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "4140:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3548, - "indexExpression": { - "argumentTypes": null, - "id": 3547, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4140:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4165:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4140:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3553, - "nodeType": "ExpressionStatement", - "src": "4140:37:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4205:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3558, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4218:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3554, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4187:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4187:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4187:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3560, - "nodeType": "ExpressionStatement", - "src": "4187:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3564, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "4261:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3565, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4279:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3561, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4243:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4243:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4243:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3567, - "nodeType": "ExpressionStatement", - "src": "4243:49:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3568, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4302:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4302:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3571, - "nodeType": "ExpressionStatement", - "src": "4302:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3573, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4357:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3574, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4366:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3575, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4375:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3576, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4389:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3572, - "name": "LogShifterDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "4334:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4334:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "EmitStatement", - "src": "4329:75:10" - } - ] - }, - "documentation": "@notice Allows the owner to remove the shifter address for a given\n ERC20shifter token contract.\n\n /// @param _symbol The symbol of the token to deregister.", - "id": 3580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3515, - "modifierName": { - "argumentTypes": null, - "id": 3514, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3771:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3771:9:10" - } - ], - "name": "removeShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3512, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3580, - "src": "3737:23:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3511, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3737:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:25:10" - }, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [], - "src": "3781:0:10" - }, - "scope": 3809, - "src": "3714:697:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3672, - "nodeType": "Block", - "src": "4574:648:10", - "statements": [ - { - "assignments": [ - 3591 - ], - "declarations": [ - { - "constant": false, - "id": 3591, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4584:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3592, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4584:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3593, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4611:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3605, - "nodeType": "Block", - "src": "4674:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3601, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4688:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3602, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4688:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "4688:14:10" - } - ] - }, - "id": 3606, - "nodeType": "IfStatement", - "src": "4607:106:10", - "trueBody": { - "id": 3600, - "nodeType": "Block", - "src": "4624:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3596, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3597, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4646:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4638:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "4638:19:10" - } - ] - } - }, - { - "assignments": [ - 3610 - ], - "declarations": [ - { - "constant": false, - "id": 3610, - "name": "shifters", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4723:25:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3609, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4723:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3616, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3614, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4765:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4751:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3611, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3612, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4755:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4723:48:10" - }, - { - "assignments": [ - 3618 - ], - "declarations": [ - { - "constant": false, - "id": 3618, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4831:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3620, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4843:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:13:10" - }, - { - "assignments": [ - 3622 - ], - "declarations": [ - { - "constant": false, - "id": 3622, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4854:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4854:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3624, - "initialValue": { - "argumentTypes": null, - "id": 3623, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3582, - "src": "4869:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4854:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3625, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4889:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4897:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4889:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3638, - "nodeType": "IfStatement", - "src": "4885:85:10", - "trueBody": { - "id": 3637, - "nodeType": "Block", - "src": "4909:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4923:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3633, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4947:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4930:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "4930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4923:36:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3636, - "nodeType": "ExpressionStatement", - "src": "4923:36:10" - } - ] - } - }, - { - "body": { - "id": 3668, - "nodeType": "Block", - "src": "4998:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3642, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5016:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5032:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5024:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3649, - "nodeType": "IfStatement", - "src": "5012:62:10", - "trueBody": { - "id": 3648, - "nodeType": "Block", - "src": "5036:38:10", - "statements": [ - { - "id": 3647, - "nodeType": "Break", - "src": "5054:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3650, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5087:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3652, - "indexExpression": { - "argumentTypes": null, - "id": 3651, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5096:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5087:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3653, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5101:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5087:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3655, - "nodeType": "ExpressionStatement", - "src": "5087:18:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3656, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5119:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3659, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "5142:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3660, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5155:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3657, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5126:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3663, - "nodeType": "ExpressionStatement", - "src": "5119:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3664, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5174:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5179:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5174:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3667, - "nodeType": "ExpressionStatement", - "src": "5174:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3639, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "4987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3640, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4991:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4987:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3669, - "nodeType": "WhileStatement", - "src": "4980:211:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3670, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5207:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3589, - "id": 3671, - "nodeType": "Return", - "src": "5200:15:10" - } - ] - }, - "documentation": "@dev To get all the registered shifters use count = 0.", - "id": 3673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3582, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4501:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4501:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3584, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4517:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4500:32:10" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3588, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4556:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4556:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3587, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4556:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4555:18:10" - }, - "scope": 3809, - "src": "4480:742:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3765, - "nodeType": "Block", - "src": "5396:673:10", - "statements": [ - { - "assignments": [ - 3684 - ], - "declarations": [ - { - "constant": false, - "id": 3684, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5406:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3685, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5406:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3686, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5433:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5443:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5433:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3698, - "nodeType": "Block", - "src": "5496:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3694, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5510:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3695, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5518:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5510:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "5510:14:10" - } - ] - }, - "id": 3699, - "nodeType": "IfStatement", - "src": "5429:106:10", - "trueBody": { - "id": 3693, - "nodeType": "Block", - "src": "5446:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3689, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5460:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3690, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "5468:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5460:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3692, - "nodeType": "ExpressionStatement", - "src": "5460:19:10" - } - ] - } - }, - { - "assignments": [ - 3703 - ], - "declarations": [ - { - "constant": false, - "id": 3703, - "name": "shiftedTokens", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5545:30:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3702, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5545:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3709, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5592:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5578:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5582:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5582:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5578:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5545:53:10" - }, - { - "assignments": [ - 3711 - ], - "declarations": [ - { - "constant": false, - "id": 3711, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5658:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3713, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5670:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5658:13:10" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5681:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3714, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3717, - "initialValue": { - "argumentTypes": null, - "id": 3716, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "5696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5681:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3718, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5716:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5732:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5724:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5716:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3731, - "nodeType": "IfStatement", - "src": "5712:90:10", - "trueBody": { - "id": 3730, - "nodeType": "Block", - "src": "5736:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3723, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5750:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3726, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5774:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3724, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "5757:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5757:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5750:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3729, - "nodeType": "ExpressionStatement", - "src": "5750:41:10" - } - ] - } - }, - { - "body": { - "id": 3761, - "nodeType": "Block", - "src": "5830:203:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3735, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5848:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5864:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5856:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5848:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3742, - "nodeType": "IfStatement", - "src": "5844:62:10", - "trueBody": { - "id": 3741, - "nodeType": "Block", - "src": "5868:38:10", - "statements": [ - { - "id": 3740, - "nodeType": "Break", - "src": "5886:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3743, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "5919:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3745, - "indexExpression": { - "argumentTypes": null, - "id": 3744, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5933:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5919:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5938:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5919:23:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3748, - "nodeType": "ExpressionStatement", - "src": "5919:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3749, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5956:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3752, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3753, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5997:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3750, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5963:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5963:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5956:46:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "5956:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3757, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "6016:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6021:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6016:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3760, - "nodeType": "ExpressionStatement", - "src": "6016:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3732, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3733, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5823:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5819:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3762, - "nodeType": "WhileStatement", - "src": "5812:221:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3763, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6049:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3682, - "id": 3764, - "nodeType": "Return", - "src": "6042:20:10" - } - ] - }, - "documentation": "@dev To get all the registered shifted tokens use count = 0.", - "id": 3766, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShiftedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3675, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5323:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3677, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5339:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5322:32:10" - }, - "returnParameters": { - "id": 3682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3681, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5378:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5378:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3680, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5378:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5377:18:10" - }, - "scope": 3809, - "src": "5297:772:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "6354:63:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6380:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "6395:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6380:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3773, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6371:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6371:39:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3772, - "id": 3778, - "nodeType": "Return", - "src": "6364:46:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n contract address.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.", - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterByToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3768, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6298:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6298:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6297:23:10" - }, - "returnParameters": { - "id": 3772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3771, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6344:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3770, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6344:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:10:10" - }, - "scope": 3809, - "src": "6271:146:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3795, - "nodeType": "Block", - "src": "6698:77:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3788, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6724:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3792, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3789, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "6739:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3791, - "indexExpression": { - "argumentTypes": null, - "id": 3790, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "6753:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6739:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6724:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3787, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6715:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6715:53:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3786, - "id": 3794, - "nodeType": "Return", - "src": "6708:60:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.", - "id": 3796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6635:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3781, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6635:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6634:30:10" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3785, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6688:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3784, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6688:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6687:10:10" - }, - "scope": 3809, - "src": "6607:168:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3807, - "nodeType": "Block", - "src": "7054:51:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3803, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "7071:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3805, - "indexExpression": { - "argumentTypes": null, - "id": 3804, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3798, - "src": "7085:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7071:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3802, - "id": 3806, - "nodeType": "Return", - "src": "7064:34:10" - } - ] - }, - "documentation": "@notice Returns the ERC20Shifted address for the given token symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n lookup.", - "id": 3808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTokenBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3798, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "6992:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3797, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6992:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6991:30:10" - }, - "returnParameters": { - "id": 3802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3801, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "7045:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7045:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7044:9:10" - }, - "scope": 3809, - "src": "6966:139:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3810, - "src": "268:6839:10" - } - ], - "src": "0:7107:10" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -13146,91 +424,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T03:55:13.586Z", - "devdoc": { - "methods": { - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "getShiftedTokens(address,uint256)": { - "details": "To get all the registered shifted tokens use count = 0." - }, - "getShifterBySymbol(string)": { - "params": { - "_tokenSymbol": "The symbol of the ERC20Shifted token contract." - } - }, - "getShifterByToken(address)": { - "params": { - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - }, - "getShifters(address,uint256)": { - "details": "To get all the registered shifters use count = 0." - }, - "getTokenBySymbol(string)": { - "params": { - "_tokenSymbol": "The symbol of the ERC20Shifted token contract to lookup." - } - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { - "return": "the address of the owner." - }, - "removeShifter(string)": { - "params": { - "_symbol": "The symbol of the token to deregister." - } - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "setShifter(address,address)": { - "params": { - "_shifterAddress": "The address of the Shifter contract.", - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - }, - "updateShifter(address,address)": { - "params": { - "_newShifterAddress": "The updated address of the Shifter contract.", - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - } - } - }, - "userdoc": { - "methods": { - "getShifterBySymbol(string)": { - "notice": "Returns the Shifter address for the given ERC20Shifted token symbol. " - }, - "getShifterByToken(address)": { - "notice": "Returns the Shifter address for the given ERC20Shifted token contract address. " - }, - "getTokenBySymbol(string)": { - "notice": "Returns the ERC20Shifted address for the given token symbol. " - }, - "removeShifter(string)": { - "notice": "Allows the owner to remove the shifter address for a given ERC20shifter token contract. " - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "setShifter(address,address)": { - "notice": "Allow the owner to set the shifter address for a given ERC20Shifted token contract. " - }, - "updateShifter(address,address)": { - "notice": "Allow the owner to update the shifter address for a given ERC20Shifted token contract. " - } - }, - "notice": "ShifterRegistry is a mapping from assets to their associated ERC20Shifted and Shifter contracts." - } + "updatedAt": "2019-08-02T03:55:13.586Z" } \ No newline at end of file diff --git a/build/devnet/ZECShifter.json b/build/devnet/ZECShifter.json index 7a2b585d..0e53250c 100644 --- a/build/devnet/ZECShifter.json +++ b/build/devnet/ZECShifter.json @@ -418,10933 +418,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_nextMintAuthority\",\"type\":\"address\"}],\"name\":\"updateMintAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextTokenOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFee\",\"type\":\"uint16\"}],\"name\":\"updateFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"}],\"name\":\"hashForSignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"status\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"shiftOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintAuthority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextShiftID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"shiftIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_signedMessageHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_feeRecipient\",\"type\":\"address\"},{\"name\":\"_mintAuthority\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"}],\"name\":\"LogShiftIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_indexedTo\",\"type\":\"bytes\"}],\"name\":\"LogShiftOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"params\":{\"_amount\":\"The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)\",\"_nHash\":\"(nonce hash) The hash of the nonce, amount and pHash.\",\"_pHash\":\"(payload hash) The hash of the payload associated with the shift.\",\"_sig\":\"The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\"}},\"shiftOut(bytes,uint256)\":{\"params\":{\"_amount\":\"The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)\",\"_to\":\"The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateFee(uint16)\":{\"params\":{\"_nextFee\":\"The new fee for minting and burning.\"}},\"updateFeeRecipient(address)\":{\"params\":{\"_nextFeeRecipient\":\"The address to start paying fees to.\"}},\"updateMintAuthority(address)\":{\"params\":{\"_nextMintAuthority\":\"The address to start paying fees to.\"}}}},\"userdoc\":{\"methods\":{\"claimTokenOwnership()\":{\"notice\":\"Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function.\"},\"hashForSignature(bytes32,uint256,address,bytes32)\":{\"notice\":\"hashForSignature hashes the parameters so that they can be signed.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"notice\":\"shiftIn mints tokens after taking a fee for the `_feeRecipient`. \"},\"shiftOut(bytes,uint256)\":{\"notice\":\"shiftOut burns tokens after taking a fee for the `_feeRecipient`. \"},\"transferTokenOwnership(address)\":{\"notice\":\"Allow the owner to update the owner of the ERC20Shifted token.\"},\"updateFee(uint16)\":{\"notice\":\"Allow the owner to update the fee. \"},\"updateFeeRecipient(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"updateMintAuthority(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"verifySignature(bytes32,bytes)\":{\"notice\":\"verifySignature checks the the provided signature matches the provided parameters.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":\"ZECShifter\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":{\"keccak256\":\"0xd80cfaf2e5adebbe3d12b5053be769787a5d3aac7a813d985de9aff2ae77046f\",\"urls\":[\"bzzr://241ffce5caac59f3015d47630239593349a700e43976d003256afea8363be7dd\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol\":{\"keccak256\":\"0x2466e251b3ab27d508ac2f0de523e03cfaf00b6c4f2e4fa382db28940f4bc8d8\",\"urls\":[\"bzzr://b80cf1a642065ce8b1172527564947598e8d1af6640f9dfcbf36040e701497fc\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x7b0d1ee8869ddd89976df0d781d16f24e49db9528fcc49c31b164b0d3c936bda\",\"urls\":[\"bzzr://dcd07ff226fff30843e7b28c069270451a9bd4a49809e78c42e17a23c52c72e4\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405260008054600160a01b60ff0219167402000000000000000000000000000000000000000017815560055534801561003a57600080fd5b5060405160808062001ad48339810180604052608081101561005b57600080fd5b5080516020820151604080840151606090940151600080546001600160a01b0319163317808255925194959394919286928692869286926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b038087166001600160a01b03199283161790925560028054928516929091169190911790556003805461ffff83167401000000000000000000000000000000000000000002600160a01b61ffff021990911617905561013583610142602090811b901c565b5050505050505050610263565b61015061025260201b60201c565b6101bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661023057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331490565b61186180620002736000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a72305820854aa93272199cd842004f9de18d1944a7fa6960912145f595cabfec5051b0020029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a72305820854aa93272199cd842004f9de18d1944a7fa6960912145f595cabfec5051b0020029", - "sourceMap": "7819:211:9:-;;;552:24;;;-1:-1:-1;;;;;;552:24:9;;;;;1402:30;;7856:172;5:2:-1;;;;30:1;27;20:12;5:2;7856:172:9;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7856:172:9;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;7856:172:9;;;;;;;;;;;;;;-1:-1:-1;;;;;724:6:36;;;;;657;691:40;;657:6;;691:40;2108:5:9;:14;;-1:-1:-1;;;;;2108:14:9;;;-1:-1:-1;;;;;;2108:14:9;;;;;;;2132:13;:30;;;;;;;;;;;;;;;2172:3;:10;;;;;;;-1:-1:-1;;;;;;2172:10:9;;;;;;2192:33;2211:13;2192:18;;;;;:33;;:::i;:::-;1998:234;;;;7856:172;;;;7819:211;;3267:274;1018:9:36;:7;;;:9;;:::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1165:90:36:-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;7819:211:9:-;;;;;;;", - "deployedSourceMap": "7819:211:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7819:211:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2997:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2997:125:9;-1:-1:-1;;;;;2997:125:9;;:::i;:::-;;2502:77;;;:::i;2664:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2664:187:9;-1:-1:-1;;;;;2664:187:9;;:::i;3667:84::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3667:84:9;;;;:::i;1089:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1089:27:9;;;;;;;;;;;;;;7263:209;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7263:209:9;;;;;;;;-1:-1:-1;;;;;7263:209:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1250:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1250:37:9;;:::i;:::-;;;;;;;;;;;;;;;;;;552:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1599:137:36;;;:::i;6166:716:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6166:716:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6166:716:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6166:716:9;;;;;;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;6166:716:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9;;;-1:-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9:i;814:77:36:-;;;:::i;1165:90::-;;;:::i;812:28:9:-;;;:::i;1402:30::-;;;:::i;4304:1383::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4304:1383:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4304:1383:9;;;;;;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;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4304:1383:9;;-1:-1:-1;4304:1383:9;;-1:-1:-1;;;;;4304:1383:9:i;6995:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6995:179:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6995:179:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6995:179:9;;;;;;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;6995:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6995:179:9;;-1:-1:-1;6995:179:9;;-1:-1:-1;;;;;6995:179:9:i;1176:17::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3267:274;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3267:274:9;-1:-1:-1;;;;;3267:274:9;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;703:25:9:-;;;:::i;2997:125::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3081:13:9;:34;;-1:-1:-1;;;;;;3081:34:9;-1:-1:-1;;;;;3081:34:9;;;;;;;;;;2997:125::o;2502:77::-;2550:5;;;;;;;;;-1:-1:-1;;;;;2550:5:9;-1:-1:-1;;;;;2550:20:9;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2550:22:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2550:22:9;;;;2502:77::o;2664:187::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;2748:5:9;;:49;;;-1:-1:-1;;;;;2748:49:9;;-1:-1:-1;;;;;2748:49:9;;;;;;;;;:5;;;;;:23;;:49;;;;;:5;;:49;;;;;;;:5;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;2748:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2748:49:9;;;;2807:15;-1:-1:-1;;;;;2807:35:9;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2807:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2807:37:9;;;;2664:187;:::o;3667:84::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3730:3:9;:14;;;;;;-1:-1:-1;;;3730:14:9;-1:-1:-1;;3730:14:9;;;;;;;;;3667:84::o;1089:27::-;;;-1:-1:-1;;;;;1089:27:9;;:::o;7263:209::-;7444:5;;7408:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7444:5:9;;;7408:56;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7408:56:9;;;;;;7398:67;;;;;;7263:209::o;1250:37::-;;;;;;;;;;;;;;;:::o;552:24::-;;;-1:-1:-1;;;552:24:9;;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;6166:716:9:-;6235:7;6409:3;:10;6423:1;6409:15;;6401:47;;;;;-1:-1:-1;;;;;6401:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6535:3;;6500:19;;6522:40;;619:5;;6523:16;;:7;;-1:-1:-1;;;6535:3:9;;;;6523:11;:16::i;:::-;6522:22;:40;:22;:40;:::i;:::-;6572:5;;:31;;;-1:-1:-1;;;;;6572:31:9;;6583:10;6572:31;;;;;;;;;;;;6500:62;;-1:-1:-1;;;;;;6572:5:9;;;;:10;;:31;;;;;:5;;:31;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;6572:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6613:5:9;;6624:12;;6613:37;;;-1:-1:-1;;;;;6613:37:9;;-1:-1:-1;;;;;6624:12:9;;;6613:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;6613:10:9;;-1:-1:-1;6613:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;6613:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6613:37:9;;;;6706:21;6730:24;6742:11;6730:7;:11;;:24;;;;:::i;:::-;6706:48;;6814:3;6769:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6769:49:9;;;;;;;;;;;;;;;;6801:11;;6769:49;6781:3;6786:13;6769:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6769:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:11;:16;;6843:1;6828:16;;;6862:13;-1:-1:-1;;6166:716:9;;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;812:28:9:-;;;-1:-1:-1;;;;;812:28:9;;:::o;1402:30::-;;;;:::o;4304:1383::-;4405:7;4452:25;4480:53;4497:6;4505:7;4514:10;4526:6;4480:16;:53::i;:::-;4551:25;;;;:6;:25;;;;;;4452:81;;-1:-1:-1;4551:25:9;;:34;4543:71;;;;;-1:-1:-1;;;;;4543:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:40;4645:17;4664:4;4629:15;:40::i;:::-;4624:539;;4886:252;;;;;;;;;;;;;;;;;;4969:37;4988:17;4969:18;:37::i;:::-;4886:252;;;;;;;;;;;;;-1:-1:-1;;;;;4886:252:9;;;5062:58;5081:38;5095:17;5114:4;5081:13;:38::i;:::-;5062:18;:58::i;:::-;4886:11;:252::i;:::-;4862:290;;-1:-1:-1;;;;;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:539;5172:25;;;;:6;:25;;;;;:32;;-1:-1:-1;;5172:32:9;5200:4;5172:32;;;5329:3;;5316:40;;619:5;;5317:16;;:7;;5329:3;-1:-1:-1;;;5329:3:9;;;;5317:16;:11;:16;:::i;5316:40::-;5294:62;-1:-1:-1;5366:22:9;5391:24;:7;5294:62;5391:24;:11;:24;:::i;:::-;5425:5;;:38;;;-1:-1:-1;;;;;5425:38:9;;5436:10;5425:38;;;;;;;;;;;;5366:49;;-1:-1:-1;;;;;;5425:5:9;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5425:38:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5473:5:9;;5484:12;;5473:37;;;-1:-1:-1;;;;;5473:37:9;;-1:-1:-1;;;;;5484:12:9;;;5473:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;5473:10:9;;-1:-1:-1;5473:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;5473:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5610:11:9;;5571:51;;;;;;;;5610:11;;-1:-1:-1;5582:10:9;;-1:-1:-1;5571:51:9;;;;;;;;;;5632:11;:16;;5647:1;5632:16;;;5666:14;4304:1383;-1:-1:-1;;;;;;;4304:1383:9:o;6995:179::-;7088:4;7128:39;7142:18;7162:4;7128:13;:39::i;:::-;7111:13;;-1:-1:-1;;;;;7111:56:9;;;:13;;:56;;6995:179;-1:-1:-1;;;6995:179:9:o;1176:17::-;;;-1:-1:-1;;;1176:17:9;;;;;:::o;3267:274::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;-1:-1:-1;;;;;3418:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;703:25:9:-;;;-1:-1:-1;;;;;703:25:9;;:::o;1693:458:35:-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:35;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;;;2069:56:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:35:o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;120:484:17:-;254:42;;;;;;;;;;;-1:-1:-1;;;;;254:42:17;;;;326:21;;336:10;326:21;;;;;;;;;179:13;;236:6;;254:42;179:13;;326:21;;;21:6:-1;;104:10;326:21:17;87:34:-1;135:17;;-1:-1;326:21:17;307:40;;-1:-1:-1;;;;;357:3:17;361:1;357:6;;;;;;;;;;;:12;-1:-1:-1;;;;;357:12:17;;;;;;;;;-1:-1:-1;;;;;379:3:17;383:1;379:6;;;;;;;;;;;:12;-1:-1:-1;;;;;379:12:17;;;;;;;;-1:-1:-1;406:6:17;401:169;422:2;418:1;:6;401:169;;;458:8;490:1;478:5;484:1;478:8;;;;;;;;;;-1:-1:-1;;;;;478:13:17;;;;472:20;;467:26;;458:36;;;;;;;;;;;;;;;;445:3;451:1;453;451:3;449:1;:5;445:10;;;;;;;;;;;:49;-1:-1:-1;;;;;445:49:17;;;;;;;;;521:8;541:5;547:1;541:8;;;;;;;;;;552:4;541:15;;;535:22;;530:28;;521:38;;;;;;;;;;;;;;;;508:3;514:1;516;514:3;512:1;:5;508:10;;;;;;;;;;;:51;-1:-1:-1;;;;;508:51:17;;;;;;;;-1:-1:-1;426:3:17;;401:169;;;-1:-1:-1;593:3:17;120:484;-1:-1:-1;;;;120:484:17:o;1229:1968:32:-;1307:7;1368:9;:16;1388:2;1368:22;1364:92;;1406:39;;;-1:-1:-1;;;;;1406:39:32;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:92;1806:4;1791:20;;1785:27;1851:4;1836:20;;1830:27;1904:4;1889:20;;1883:27;1522:9;1875:36;2822:66;2809:79;;2805:155;;;2904:45;;-1:-1:-1;;;;;2904:45:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:155;2974:1;:7;;2979:2;2974:7;;:18;;;;;2985:1;:7;;2990:2;2985:7;;2974:18;2970:95;;;3008:46;;-1:-1:-1;;;;;3008:46:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:95;3166:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3166:24:32;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3166:24:32;;-1:-1:-1;;3166:24:32;;;1229:1968;-1:-1:-1;;;;;;;1229:1968:32:o;678:492:17:-;810:42;;;;;;;;;;;-1:-1:-1;;;;;810:42:17;;;;882:21;;892:10;882:21;;;736:13;882:21;;;;;;-1:-1:-1;;;;;785:14:17;;;810:42;736:13;;882:21;;;21:6:-1;;104:10;882:21:17;87:34:-1;135:17;;-1:-1;882:21:17;863:40;;-1:-1:-1;;;;;913:3:17;917:1;913:6;;;;;;;;;;;:12;-1:-1:-1;;;;;913:12:17;;;;;;;;;-1:-1:-1;;;;;935:3:17;939:1;935:6;;;;;;;;;;;:12;-1:-1:-1;;;;;935:12:17;;;;;;;;-1:-1:-1;962:6:17;957:179;978:2;974:1;:6;957:179;;;1014:8;1051:1;1034:5;1040:1;1044:2;1040:6;1034:13;;;;;;;;;;-1:-1:-1;;;;;1034:18:17;;;;1028:25;;1023:31;;1014:41;;;;;;;;;;;;;;;;1001:3;1007:1;1009;1007:3;1005:1;:5;1001:10;;;;;;;;;;;:54;-1:-1:-1;;;;;1001:54:17;;;;;;;;;1082:8;1102:5;1108:1;1112:2;1108:6;1102:13;;;;;;;;;;1118:4;1102:20;;;1096:27;;1091:33;;1082:43;;;;;;;;;;;;;;;;1069:3;1075:1;1077;1075:3;1073:1;:5;1069:10;;;;;;;;;;;:56;-1:-1:-1;;;;;1069:56:17;;;;;;;;-1:-1:-1;982:3:17;;957:179;;1212:180;1317:13;1373:1;1376;1379;1382;1356:28;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1356:28:17;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1356:28:17;;;1342:43;;1212:180;;;;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"../libraries/String.sol\";\nimport \"./ERC20Shifted.sol\";\n\n/// @notice Shifter handles verifying mint and burn requests. A mintAuthority\n/// approves new assets to be minted by providing a digital signature. An owner\n/// of an asset can request for it to be burnt.\ncontract Shifter is Ownable {\n using SafeMath for uint256;\n\n uint8 public version = 2;\n\n uint256 constant BIPS_DENOMINATOR = 10000;\n\n /// @notice Each Shifter token is tied to a specific shifted token.\n ERC20Shifted public token;\n\n /// @notice The mintAuthority is an address that can sign mint requests.\n address public mintAuthority;\n\n /// @dev feeRecipient is assumed to be an address (or a contract) that can \n /// accept erc20 payments it cannot be 0x0.\n /// @notice When tokens are mint or burnt, a portion of the tokens are \n /// forwarded to a fee recipient.\n address public feeRecipient;\n\n /// @notice The minting and burning fee in bips.\n uint16 public fee;\n\n /// @notice Each nHash can only be seen once.\n mapping (bytes32=>bool) public status;\n\n // LogShiftIn and LogShiftOut contain a unique `shiftID` that identifies\n // the mint or burn event.\n uint256 public nextShiftID = 0;\n\n event LogShiftIn(address indexed _to, uint256 _amount, uint256 indexed _shiftID);\n event LogShiftOut(bytes _to, uint256 _amount, uint256 indexed _shiftID, bytes indexed _indexedTo);\n\n /// @param _token The ERC20Shifted this Shifter is responsible for.\n /// @param _feeRecipient The recipient of burning and minting fees.\n /// @param _mintAuthority The address of the key that can sign mint\n /// requests.\n /// @param _fee The amount subtracted each burn and mint request and\n /// forwarded to the feeRecipient. In BIPS.\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee) public {\n token = _token;\n mintAuthority = _mintAuthority;\n fee = _fee;\n updateFeeRecipient(_feeRecipient);\n }\n\n // Public functions ////////////////////////////////////////////////////////\n\n /// @notice Claims ownership of the token passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called.\n /// Anyone can call this function.\n function claimTokenOwnership() public {\n token.claimOwnership();\n }\n\n /// @notice Allow the owner to update the owner of the ERC20Shifted token.\n function transferTokenOwnership(Shifter _nextTokenOwner) public onlyOwner {\n token.transferOwnership(address(_nextTokenOwner));\n _nextTokenOwner.claimTokenOwnership();\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextMintAuthority The address to start paying fees to.\n function updateMintAuthority(address _nextMintAuthority) public onlyOwner {\n mintAuthority = _nextMintAuthority;\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextFeeRecipient The address to start paying fees to.\n function updateFeeRecipient(address _nextFeeRecipient) public onlyOwner {\n // ShiftIn and ShiftOut will fail if the feeRecipient is 0x0\n require(_nextFeeRecipient != address(0x0), \"fee recipient cannot be 0x0\");\n\n feeRecipient = _nextFeeRecipient;\n }\n\n /// @notice Allow the owner to update the fee.\n ///\n /// @param _nextFee The new fee for minting and burning.\n function updateFee(uint16 _nextFee) public onlyOwner {\n fee = _nextFee;\n }\n\n /// @notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _pHash (payload hash) The hash of the payload associated with the\n /// shift.\n /// @param _amount The amount of the token being shifted int, in its\n /// smallest value. (e.g. satoshis for BTC)\n /// @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n /// @param _sig The signature of the hash of the following values:\n /// (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\n function shiftIn(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes memory _sig) public returns (uint256) {\n // Verify signature\n bytes32 signedMessageHash = hashForSignature(_pHash, _amount, msg.sender, _nHash);\n require(status[signedMessageHash] == false, \"nonce hash already spent\");\n if (!verifySignature(signedMessageHash, _sig)) {\n // Return a detailed string containing the hash and recovered\n // signer. This is a costly operation but is only run in the revert\n // branch.\n revert(\n String.add4(\n \"invalid signature - hash: \",\n String.fromBytes32(signedMessageHash),\n \", signer: \",\n String.fromAddress(ECDSA.recover(signedMessageHash, _sig))\n )\n );\n }\n status[signedMessageHash] = true;\n\n // Mint `amount - fee` for the recipient and mint `fee` for the minter\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n uint256 receivedAmount = _amount.sub(absoluteFee);\n token.mint(msg.sender, receivedAmount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n emit LogShiftIn(msg.sender, receivedAmount, nextShiftID);\n nextShiftID += 1;\n\n return receivedAmount;\n }\n\n /// @notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _to The address to receive the unshifted digital asset. The\n /// format of this address should be of the destination chain.\n /// For example, when shifting out to Bitcoin, _to should be a\n /// Bitcoin address.\n /// @param _amount The amount of the token being shifted out, in its\n /// smallest value. (e.g. satoshis for BTC)\n function shiftOut(bytes memory _to, uint256 _amount) public returns (uint256) {\n // The recipient must not be empty. Better validation is possible,\n // but would need to be customized for each destination ledger.\n require(_to.length != 0, \"to address is empty\");\n\n // Burn full amount and mint fee\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n token.burn(msg.sender, _amount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n uint256 receivedValue = _amount.sub(absoluteFee);\n emit LogShiftOut(_to, receivedValue, nextShiftID, _to);\n nextShiftID += 1;\n\n return receivedValue;\n }\n\n /// @notice verifySignature checks the the provided signature matches the provided\n /// parameters.\n function verifySignature(bytes32 _signedMessageHash, bytes memory _sig) public view returns (bool) {\n return mintAuthority == ECDSA.recover(_signedMessageHash, _sig);\n }\n\n /// @notice hashForSignature hashes the parameters so that they can be signed.\n function hashForSignature(bytes32 _pHash, uint256 _amount, address _to, bytes32 _nHash) public view returns (bytes32) {\n return keccak256(abi.encode(_pHash, _amount, address(token), _to, _nHash));\n }\n}\n\n/// @dev The following are not necessary for deploying BTCShifter or ZECShifter\n/// contracts, but are used to track deployments.\ncontract BTCShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}\n\ncontract ZECShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -11507,81 +581,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T03:55:13.604Z", - "devdoc": { - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "params": { - "_amount": "The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)", - "_nHash": "(nonce hash) The hash of the nonce, amount and pHash.", - "_pHash": "(payload hash) The hash of the payload associated with the shift.", - "_sig": "The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority." - } - }, - "shiftOut(bytes,uint256)": { - "params": { - "_amount": "The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)", - "_to": "The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address." - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "updateFee(uint16)": { - "params": { - "_nextFee": "The new fee for minting and burning." - } - }, - "updateFeeRecipient(address)": { - "params": { - "_nextFeeRecipient": "The address to start paying fees to." - } - }, - "updateMintAuthority(address)": { - "params": { - "_nextMintAuthority": "The address to start paying fees to." - } - } - } - }, - "userdoc": { - "methods": { - "claimTokenOwnership()": { - "notice": "Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function." - }, - "hashForSignature(bytes32,uint256,address,bytes32)": { - "notice": "hashForSignature hashes the parameters so that they can be signed." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "notice": "shiftIn mints tokens after taking a fee for the `_feeRecipient`. " - }, - "shiftOut(bytes,uint256)": { - "notice": "shiftOut burns tokens after taking a fee for the `_feeRecipient`. " - }, - "transferTokenOwnership(address)": { - "notice": "Allow the owner to update the owner of the ERC20Shifted token." - }, - "updateFee(uint16)": { - "notice": "Allow the owner to update the fee. " - }, - "updateFeeRecipient(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "updateMintAuthority(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "verifySignature(bytes32,bytes)": { - "notice": "verifySignature checks the the provided signature matches the provided parameters." - } - } - } + "updatedAt": "2019-08-02T03:55:13.604Z" } \ No newline at end of file diff --git a/build/devnet/zBTC.json b/build/devnet/zBTC.json index 3ba6b8e4..a6794a48 100644 --- a/build/devnet/zBTC.json +++ b/build/devnet/zBTC.json @@ -376,1759 +376,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"_from\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"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\":\"The following are not necessary for deploying zBTC or zZEC contracts, but are used to track deployments.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":\"zBTC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x600b60808181527f536869667465642042544300000000000000000000000000000000000000000060a0908152610100604052600460c09081527f7a4254430000000000000000000000000000000000000000000000000000000060e0529192600891849184918491610074916003916100f4565b5081516100889060049060208501906100f4565b506005805460ff90921660ff199092169190911790555050600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505061018f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013557805160ff1916838001178555610162565b82800160010185558215610162579182015b82811115610162578251825591602001919060010190610147565b5061016e929150610172565b5090565b61018c91905b8082111561016e5760008155600101610178565b90565b610e978061019e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200936e35597cd3598468078c9b4611bc295a148e92ab21f78e3f6b82205f2362a0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200936e35597cd3598468078c9b4611bc295a148e92ab21f78e3f6b82205f2362a0029", - "sourceMap": "511:123:7:-;1014:58;511:123;;;;;;;;;1014:58;511:123;;;;;;;;;1014:58;;1067:1;;1014:58;;511:123;;1067:1;;504:12:39;;:5;;:12;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;;;;;-1:-1:-1;;552:20:39;;;;;;;;;-1:-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;-1:-1:-1;;;;;595:6:13;;;;;552:9:39;;562:40:13;;552:9:39;;562:40:13;511:123:7;;;1014:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1014:58:7;;;-1:-1:-1;1014:58:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "1014:58:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1014:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:37;;;;;;;;;;;;;;;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3702:203:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:37;;;;;;;;:::i;747:97:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;747:97:7;;;;;;;;:::i;:::-;;2166:177:13;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1688:137:13:-;;;:::i;672:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;;:::i;838:85:39:-;;;:::i;640:101:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;640:101:7;;;;;;;;:::i;4392:213:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:37;;;;;;;;:::i;1972:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:37;;;;;;;;:::i;2183:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;3702:203:37:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;747:97:7:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;818:19:7;824:3;829:7;818:5;:19::i;:::-;747:97;;:::o;2166:177:13:-;1091:13;;;;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;2250:6;;2229:43;;2258:13;;;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;2229:43;;2250:6;;2229:43;2289:13;;;2280:6;:22;;-1:-1:-1;;;;;;2280:22:13;-1:-1:-1;;;;;2289:13:13;;;;2280:22;;;-1:-1:-1;;;;;;2310:26:13;;;2166:177::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;;;;;;;;;;1661:108::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;838:85:39:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;640:101:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;713:21:7;719:5;726:7;713:5;:21::i;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;2045:24:13;;;;;-1:-1:-1;;;;;;2045:24:13;;;;;;;;;1975:101::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;-1:-1:-1;;;;;5838:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;;6584:9;;6649:36;;;;;;;;;;;6392:300;;:::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\nimport \"../libraries/Claimable.sol\";\n\n/// @notice ERC20Shifted represents a digital asset that has been bridged on to\n/// the Ethereum ledger. It exposes mint and burn functions that can only be\n/// called by it's associated Shifter.\ncontract ERC20Shifted is ERC20, ERC20Detailed, Claimable {\n\n /* solium-disable-next-line no-empty-blocks */\n constructor(string memory _name, string memory _symbol, uint8 _decimals) public ERC20Detailed(_name, _symbol, _decimals) {}\n\n function burn(address _from, uint256 _amount) public onlyOwner {\n _burn(_from, _amount);\n }\n\n function mint(address _to, uint256 _amount) public onlyOwner {\n _mint(_to, _amount);\n }\n}\n\n/// @dev The following are not necessary for deploying zBTC or zZEC contracts,\n/// but are used to track deployments.\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zBTC is ERC20Shifted(\"Shifted BTC\", \"zBTC\", 8) {}\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zZEC is ERC20Shifted(\"Shifted ZEC\", \"zZEC\", 8) {}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2207,68 +455,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T03:55:13.600Z", - "devdoc": { - "details": "The following are not necessary for deploying zBTC or zZEC contracts, but are used to track deployments.", - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } + "updatedAt": "2019-08-02T03:55:13.600Z" } \ No newline at end of file diff --git a/build/devnet/zZEC.json b/build/devnet/zZEC.json index f78399a8..45052bdd 100644 --- a/build/devnet/zZEC.json +++ b/build/devnet/zZEC.json @@ -376,1759 +376,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"_from\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"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\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":\"zZEC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x600b60808181527f53686966746564205a454300000000000000000000000000000000000000000060a0908152610100604052600460c09081527f7a5a45430000000000000000000000000000000000000000000000000000000060e0529192600891849184918491610074916003916100f4565b5081516100889060049060208501906100f4565b506005805460ff90921660ff199092169190911790555050600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505061018f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013557805160ff1916838001178555610162565b82800160010185558215610162579182015b82811115610162578251825591602001919060010190610147565b5061016e929150610172565b5090565b61018c91905b8082111561016e5760008155600101610178565b90565b610e978061019e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820912683b49a012bea331fd46fb732eb99158a49d9e9f5426f9f39204351b3ec2a0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820912683b49a012bea331fd46fb732eb99158a49d9e9f5426f9f39204351b3ec2a0029", - "sourceMap": "511:123:7:-;1121:58;511:123;;;;;;;;;1121:58;511:123;;;;;;;;;1121:58;;1174:1;;1121:58;;511:123;;1174:1;;504:12:39;;:5;;:12;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;;;;;-1:-1:-1;;552:20:39;;;;;;;;;-1:-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;-1:-1:-1;;;;;595:6:13;;;;;552:9:39;;562:40:13;;552:9:39;;562:40:13;511:123:7;;;1121:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1121:58:7;;;-1:-1:-1;1121:58:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "1121:58:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1121:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:37;;;;;;;;;;;;;;;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3702:203:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:37;;;;;;;;:::i;747:97:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;747:97:7;;;;;;;;:::i;:::-;;2166:177:13;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1688:137:13:-;;;:::i;672:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;;:::i;838:85:39:-;;;:::i;640:101:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;640:101:7;;;;;;;;:::i;4392:213:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:37;;;;;;;;:::i;1972:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:37;;;;;;;;:::i;2183:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;3702:203:37:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;747:97:7:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;818:19:7;824:3;829:7;818:5;:19::i;:::-;747:97;;:::o;2166:177:13:-;1091:13;;;;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;2250:6;;2229:43;;2258:13;;;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;2229:43;;2250:6;;2229:43;2289:13;;;2280:6;:22;;-1:-1:-1;;;;;;2280:22:13;-1:-1:-1;;;;;2289:13:13;;;;2280:22;;;-1:-1:-1;;;;;;2310:26:13;;;2166:177::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;;;;;;;;;;1661:108::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;838:85:39:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;640:101:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;713:21:7;719:5;726:7;713:5;:21::i;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;2045:24:13;;;;;-1:-1:-1;;;;;;2045:24:13;;;;;;;;;1975:101::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;-1:-1:-1;;;;;5838:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;;6584:9;;6649:36;;;;;;;;;;;6392:300;;:::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\nimport \"../libraries/Claimable.sol\";\n\n/// @notice ERC20Shifted represents a digital asset that has been bridged on to\n/// the Ethereum ledger. It exposes mint and burn functions that can only be\n/// called by it's associated Shifter.\ncontract ERC20Shifted is ERC20, ERC20Detailed, Claimable {\n\n /* solium-disable-next-line no-empty-blocks */\n constructor(string memory _name, string memory _symbol, uint8 _decimals) public ERC20Detailed(_name, _symbol, _decimals) {}\n\n function burn(address _from, uint256 _amount) public onlyOwner {\n _burn(_from, _amount);\n }\n\n function mint(address _to, uint256 _amount) public onlyOwner {\n _mint(_to, _amount);\n }\n}\n\n/// @dev The following are not necessary for deploying zBTC or zZEC contracts,\n/// but are used to track deployments.\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zBTC is ERC20Shifted(\"Shifted BTC\", \"zBTC\", 8) {}\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zZEC is ERC20Shifted(\"Shifted ZEC\", \"zZEC\", 8) {}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2207,67 +455,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T03:55:13.610Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } + "updatedAt": "2019-08-02T03:55:13.610Z" } \ No newline at end of file diff --git a/build/localnet/BTCShifter.json b/build/localnet/BTCShifter.json index 123aee92..2638f185 100644 --- a/build/localnet/BTCShifter.json +++ b/build/localnet/BTCShifter.json @@ -418,10933 +418,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_nextMintAuthority\",\"type\":\"address\"}],\"name\":\"updateMintAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextTokenOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFee\",\"type\":\"uint16\"}],\"name\":\"updateFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"}],\"name\":\"hashForSignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"status\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"shiftOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintAuthority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextShiftID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"shiftIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_signedMessageHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_feeRecipient\",\"type\":\"address\"},{\"name\":\"_mintAuthority\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"}],\"name\":\"LogShiftIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_indexedTo\",\"type\":\"bytes\"}],\"name\":\"LogShiftOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"The following are not necessary for deploying BTCShifter or ZECShifter contracts, but are used to track deployments.\",\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"params\":{\"_amount\":\"The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)\",\"_nHash\":\"(nonce hash) The hash of the nonce, amount and pHash.\",\"_pHash\":\"(payload hash) The hash of the payload associated with the shift.\",\"_sig\":\"The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\"}},\"shiftOut(bytes,uint256)\":{\"params\":{\"_amount\":\"The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)\",\"_to\":\"The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateFee(uint16)\":{\"params\":{\"_nextFee\":\"The new fee for minting and burning.\"}},\"updateFeeRecipient(address)\":{\"params\":{\"_nextFeeRecipient\":\"The address to start paying fees to.\"}},\"updateMintAuthority(address)\":{\"params\":{\"_nextMintAuthority\":\"The address to start paying fees to.\"}}}},\"userdoc\":{\"methods\":{\"claimTokenOwnership()\":{\"notice\":\"Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function.\"},\"hashForSignature(bytes32,uint256,address,bytes32)\":{\"notice\":\"hashForSignature hashes the parameters so that they can be signed.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"notice\":\"shiftIn mints tokens after taking a fee for the `_feeRecipient`. \"},\"shiftOut(bytes,uint256)\":{\"notice\":\"shiftOut burns tokens after taking a fee for the `_feeRecipient`. \"},\"transferTokenOwnership(address)\":{\"notice\":\"Allow the owner to update the owner of the ERC20Shifted token.\"},\"updateFee(uint16)\":{\"notice\":\"Allow the owner to update the fee. \"},\"updateFeeRecipient(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"updateMintAuthority(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"verifySignature(bytes32,bytes)\":{\"notice\":\"verifySignature checks the the provided signature matches the provided parameters.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":\"BTCShifter\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":{\"keccak256\":\"0xd80cfaf2e5adebbe3d12b5053be769787a5d3aac7a813d985de9aff2ae77046f\",\"urls\":[\"bzzr://241ffce5caac59f3015d47630239593349a700e43976d003256afea8363be7dd\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol\":{\"keccak256\":\"0x2466e251b3ab27d508ac2f0de523e03cfaf00b6c4f2e4fa382db28940f4bc8d8\",\"urls\":[\"bzzr://b80cf1a642065ce8b1172527564947598e8d1af6640f9dfcbf36040e701497fc\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x7b0d1ee8869ddd89976df0d781d16f24e49db9528fcc49c31b164b0d3c936bda\",\"urls\":[\"bzzr://dcd07ff226fff30843e7b28c069270451a9bd4a49809e78c42e17a23c52c72e4\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405260008054600160a01b60ff0219167402000000000000000000000000000000000000000017815560055534801561003a57600080fd5b5060405160808062001ad48339810180604052608081101561005b57600080fd5b5080516020820151604080840151606090940151600080546001600160a01b0319163317808255925194959394919286928692869286926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b038087166001600160a01b03199283161790925560028054928516929091169190911790556003805461ffff83167401000000000000000000000000000000000000000002600160a01b61ffff021990911617905561013583610142602090811b901c565b5050505050505050610263565b61015061025260201b60201c565b6101bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661023057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331490565b61186180620002736000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a723058203b860899b433d4379f0efafa085f8907f9a784429baa160d4b469e5d33e9653f0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a723058203b860899b433d4379f0efafa085f8907f9a784429baa160d4b469e5d33e9653f0029", - "sourceMap": "7606:211:9:-;;;552:24;;;-1:-1:-1;;;;;;552:24:9;;;;;1402:30;;7643:172;5:2:-1;;;;30:1;27;20:12;5:2;7643:172:9;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7643:172:9;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;7643:172:9;;;;;;;;;;;;;;-1:-1:-1;;;;;724:6:36;;;;;657;691:40;;657:6;;691:40;2108:5:9;:14;;-1:-1:-1;;;;;2108:14:9;;;-1:-1:-1;;;;;;2108:14:9;;;;;;;2132:13;:30;;;;;;;;;;;;;;;2172:3;:10;;;;;;;-1:-1:-1;;;;;;2172:10:9;;;;;;2192:33;2211:13;2192:18;;;;;:33;;:::i;:::-;1998:234;;;;7643:172;;;;7606:211;;3267:274;1018:9:36;:7;;;:9;;:::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1165:90:36:-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;7606:211:9:-;;;;;;;", - "deployedSourceMap": "7606:211:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7606:211:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2997:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2997:125:9;-1:-1:-1;;;;;2997:125:9;;:::i;:::-;;2502:77;;;:::i;2664:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2664:187:9;-1:-1:-1;;;;;2664:187:9;;:::i;3667:84::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3667:84:9;;;;:::i;1089:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1089:27:9;;;;;;;;;;;;;;7263:209;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7263:209:9;;;;;;;;-1:-1:-1;;;;;7263:209:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1250:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1250:37:9;;:::i;:::-;;;;;;;;;;;;;;;;;;552:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1599:137:36;;;:::i;6166:716:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6166:716:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6166:716:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6166:716:9;;;;;;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;6166:716:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9;;;-1:-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9:i;814:77:36:-;;;:::i;1165:90::-;;;:::i;812:28:9:-;;;:::i;1402:30::-;;;:::i;4304:1383::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4304:1383:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4304:1383:9;;;;;;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;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4304:1383:9;;-1:-1:-1;4304:1383:9;;-1:-1:-1;;;;;4304:1383:9:i;6995:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6995:179:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6995:179:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6995:179:9;;;;;;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;6995:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6995:179:9;;-1:-1:-1;6995:179:9;;-1:-1:-1;;;;;6995:179:9:i;1176:17::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3267:274;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3267:274:9;-1:-1:-1;;;;;3267:274:9;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;703:25:9:-;;;:::i;2997:125::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3081:13:9;:34;;-1:-1:-1;;;;;;3081:34:9;-1:-1:-1;;;;;3081:34:9;;;;;;;;;;2997:125::o;2502:77::-;2550:5;;;;;;;;;-1:-1:-1;;;;;2550:5:9;-1:-1:-1;;;;;2550:20:9;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2550:22:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2550:22:9;;;;2502:77::o;2664:187::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;2748:5:9;;:49;;;-1:-1:-1;;;;;2748:49:9;;-1:-1:-1;;;;;2748:49:9;;;;;;;;;:5;;;;;:23;;:49;;;;;:5;;:49;;;;;;;:5;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;2748:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2748:49:9;;;;2807:15;-1:-1:-1;;;;;2807:35:9;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2807:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2807:37:9;;;;2664:187;:::o;3667:84::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3730:3:9;:14;;;;;;-1:-1:-1;;;3730:14:9;-1:-1:-1;;3730:14:9;;;;;;;;;3667:84::o;1089:27::-;;;-1:-1:-1;;;;;1089:27:9;;:::o;7263:209::-;7444:5;;7408:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7444:5:9;;;7408:56;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7408:56:9;;;;;;7398:67;;;;;;7263:209::o;1250:37::-;;;;;;;;;;;;;;;:::o;552:24::-;;;-1:-1:-1;;;552:24:9;;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;6166:716:9:-;6235:7;6409:3;:10;6423:1;6409:15;;6401:47;;;;;-1:-1:-1;;;;;6401:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6535:3;;6500:19;;6522:40;;619:5;;6523:16;;:7;;-1:-1:-1;;;6535:3:9;;;;6523:11;:16::i;:::-;6522:22;:40;:22;:40;:::i;:::-;6572:5;;:31;;;-1:-1:-1;;;;;6572:31:9;;6583:10;6572:31;;;;;;;;;;;;6500:62;;-1:-1:-1;;;;;;6572:5:9;;;;:10;;:31;;;;;:5;;:31;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;6572:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6613:5:9;;6624:12;;6613:37;;;-1:-1:-1;;;;;6613:37:9;;-1:-1:-1;;;;;6624:12:9;;;6613:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;6613:10:9;;-1:-1:-1;6613:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;6613:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6613:37:9;;;;6706:21;6730:24;6742:11;6730:7;:11;;:24;;;;:::i;:::-;6706:48;;6814:3;6769:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6769:49:9;;;;;;;;;;;;;;;;6801:11;;6769:49;6781:3;6786:13;6769:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6769:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:11;:16;;6843:1;6828:16;;;6862:13;-1:-1:-1;;6166:716:9;;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;812:28:9:-;;;-1:-1:-1;;;;;812:28:9;;:::o;1402:30::-;;;;:::o;4304:1383::-;4405:7;4452:25;4480:53;4497:6;4505:7;4514:10;4526:6;4480:16;:53::i;:::-;4551:25;;;;:6;:25;;;;;;4452:81;;-1:-1:-1;4551:25:9;;:34;4543:71;;;;;-1:-1:-1;;;;;4543:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:40;4645:17;4664:4;4629:15;:40::i;:::-;4624:539;;4886:252;;;;;;;;;;;;;;;;;;4969:37;4988:17;4969:18;:37::i;:::-;4886:252;;;;;;;;;;;;;-1:-1:-1;;;;;4886:252:9;;;5062:58;5081:38;5095:17;5114:4;5081:13;:38::i;:::-;5062:18;:58::i;:::-;4886:11;:252::i;:::-;4862:290;;-1:-1:-1;;;;;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:539;5172:25;;;;:6;:25;;;;;:32;;-1:-1:-1;;5172:32:9;5200:4;5172:32;;;5329:3;;5316:40;;619:5;;5317:16;;:7;;5329:3;-1:-1:-1;;;5329:3:9;;;;5317:16;:11;:16;:::i;5316:40::-;5294:62;-1:-1:-1;5366:22:9;5391:24;:7;5294:62;5391:24;:11;:24;:::i;:::-;5425:5;;:38;;;-1:-1:-1;;;;;5425:38:9;;5436:10;5425:38;;;;;;;;;;;;5366:49;;-1:-1:-1;;;;;;5425:5:9;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5425:38:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5473:5:9;;5484:12;;5473:37;;;-1:-1:-1;;;;;5473:37:9;;-1:-1:-1;;;;;5484:12:9;;;5473:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;5473:10:9;;-1:-1:-1;5473:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;5473:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5610:11:9;;5571:51;;;;;;;;5610:11;;-1:-1:-1;5582:10:9;;-1:-1:-1;5571:51:9;;;;;;;;;;5632:11;:16;;5647:1;5632:16;;;5666:14;4304:1383;-1:-1:-1;;;;;;;4304:1383:9:o;6995:179::-;7088:4;7128:39;7142:18;7162:4;7128:13;:39::i;:::-;7111:13;;-1:-1:-1;;;;;7111:56:9;;;:13;;:56;;6995:179;-1:-1:-1;;;6995:179:9:o;1176:17::-;;;-1:-1:-1;;;1176:17:9;;;;;:::o;3267:274::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;-1:-1:-1;;;;;3418:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;703:25:9:-;;;-1:-1:-1;;;;;703:25:9;;:::o;1693:458:35:-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:35;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;;;2069:56:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:35:o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;120:484:17:-;254:42;;;;;;;;;;;-1:-1:-1;;;;;254:42:17;;;;326:21;;336:10;326:21;;;;;;;;;179:13;;236:6;;254:42;179:13;;326:21;;;21:6:-1;;104:10;326:21:17;87:34:-1;135:17;;-1:-1;326:21:17;307:40;;-1:-1:-1;;;;;357:3:17;361:1;357:6;;;;;;;;;;;:12;-1:-1:-1;;;;;357:12:17;;;;;;;;;-1:-1:-1;;;;;379:3:17;383:1;379:6;;;;;;;;;;;:12;-1:-1:-1;;;;;379:12:17;;;;;;;;-1:-1:-1;406:6:17;401:169;422:2;418:1;:6;401:169;;;458:8;490:1;478:5;484:1;478:8;;;;;;;;;;-1:-1:-1;;;;;478:13:17;;;;472:20;;467:26;;458:36;;;;;;;;;;;;;;;;445:3;451:1;453;451:3;449:1;:5;445:10;;;;;;;;;;;:49;-1:-1:-1;;;;;445:49:17;;;;;;;;;521:8;541:5;547:1;541:8;;;;;;;;;;552:4;541:15;;;535:22;;530:28;;521:38;;;;;;;;;;;;;;;;508:3;514:1;516;514:3;512:1;:5;508:10;;;;;;;;;;;:51;-1:-1:-1;;;;;508:51:17;;;;;;;;-1:-1:-1;426:3:17;;401:169;;;-1:-1:-1;593:3:17;120:484;-1:-1:-1;;;;120:484:17:o;1229:1968:32:-;1307:7;1368:9;:16;1388:2;1368:22;1364:92;;1406:39;;;-1:-1:-1;;;;;1406:39:32;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:92;1806:4;1791:20;;1785:27;1851:4;1836:20;;1830:27;1904:4;1889:20;;1883:27;1522:9;1875:36;2822:66;2809:79;;2805:155;;;2904:45;;-1:-1:-1;;;;;2904:45:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:155;2974:1;:7;;2979:2;2974:7;;:18;;;;;2985:1;:7;;2990:2;2985:7;;2974:18;2970:95;;;3008:46;;-1:-1:-1;;;;;3008:46:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:95;3166:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3166:24:32;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3166:24:32;;-1:-1:-1;;3166:24:32;;;1229:1968;-1:-1:-1;;;;;;;1229:1968:32:o;678:492:17:-;810:42;;;;;;;;;;;-1:-1:-1;;;;;810:42:17;;;;882:21;;892:10;882:21;;;736:13;882:21;;;;;;-1:-1:-1;;;;;785:14:17;;;810:42;736:13;;882:21;;;21:6:-1;;104:10;882:21:17;87:34:-1;135:17;;-1:-1;882:21:17;863:40;;-1:-1:-1;;;;;913:3:17;917:1;913:6;;;;;;;;;;;:12;-1:-1:-1;;;;;913:12:17;;;;;;;;;-1:-1:-1;;;;;935:3:17;939:1;935:6;;;;;;;;;;;:12;-1:-1:-1;;;;;935:12:17;;;;;;;;-1:-1:-1;962:6:17;957:179;978:2;974:1;:6;957:179;;;1014:8;1051:1;1034:5;1040:1;1044:2;1040:6;1034:13;;;;;;;;;;-1:-1:-1;;;;;1034:18:17;;;;1028:25;;1023:31;;1014:41;;;;;;;;;;;;;;;;1001:3;1007:1;1009;1007:3;1005:1;:5;1001:10;;;;;;;;;;;:54;-1:-1:-1;;;;;1001:54:17;;;;;;;;;1082:8;1102:5;1108:1;1112:2;1108:6;1102:13;;;;;;;;;;1118:4;1102:20;;;1096:27;;1091:33;;1082:43;;;;;;;;;;;;;;;;1069:3;1075:1;1077;1075:3;1073:1;:5;1069:10;;;;;;;;;;;:56;-1:-1:-1;;;;;1069:56:17;;;;;;;;-1:-1:-1;982:3:17;;957:179;;1212:180;1317:13;1373:1;1376;1379;1382;1356:28;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1356:28:17;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1356:28:17;;;1342:43;;1212:180;;;;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"../libraries/String.sol\";\nimport \"./ERC20Shifted.sol\";\n\n/// @notice Shifter handles verifying mint and burn requests. A mintAuthority\n/// approves new assets to be minted by providing a digital signature. An owner\n/// of an asset can request for it to be burnt.\ncontract Shifter is Ownable {\n using SafeMath for uint256;\n\n uint8 public version = 2;\n\n uint256 constant BIPS_DENOMINATOR = 10000;\n\n /// @notice Each Shifter token is tied to a specific shifted token.\n ERC20Shifted public token;\n\n /// @notice The mintAuthority is an address that can sign mint requests.\n address public mintAuthority;\n\n /// @dev feeRecipient is assumed to be an address (or a contract) that can \n /// accept erc20 payments it cannot be 0x0.\n /// @notice When tokens are mint or burnt, a portion of the tokens are \n /// forwarded to a fee recipient.\n address public feeRecipient;\n\n /// @notice The minting and burning fee in bips.\n uint16 public fee;\n\n /// @notice Each nHash can only be seen once.\n mapping (bytes32=>bool) public status;\n\n // LogShiftIn and LogShiftOut contain a unique `shiftID` that identifies\n // the mint or burn event.\n uint256 public nextShiftID = 0;\n\n event LogShiftIn(address indexed _to, uint256 _amount, uint256 indexed _shiftID);\n event LogShiftOut(bytes _to, uint256 _amount, uint256 indexed _shiftID, bytes indexed _indexedTo);\n\n /// @param _token The ERC20Shifted this Shifter is responsible for.\n /// @param _feeRecipient The recipient of burning and minting fees.\n /// @param _mintAuthority The address of the key that can sign mint\n /// requests.\n /// @param _fee The amount subtracted each burn and mint request and\n /// forwarded to the feeRecipient. In BIPS.\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee) public {\n token = _token;\n mintAuthority = _mintAuthority;\n fee = _fee;\n updateFeeRecipient(_feeRecipient);\n }\n\n // Public functions ////////////////////////////////////////////////////////\n\n /// @notice Claims ownership of the token passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called.\n /// Anyone can call this function.\n function claimTokenOwnership() public {\n token.claimOwnership();\n }\n\n /// @notice Allow the owner to update the owner of the ERC20Shifted token.\n function transferTokenOwnership(Shifter _nextTokenOwner) public onlyOwner {\n token.transferOwnership(address(_nextTokenOwner));\n _nextTokenOwner.claimTokenOwnership();\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextMintAuthority The address to start paying fees to.\n function updateMintAuthority(address _nextMintAuthority) public onlyOwner {\n mintAuthority = _nextMintAuthority;\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextFeeRecipient The address to start paying fees to.\n function updateFeeRecipient(address _nextFeeRecipient) public onlyOwner {\n // ShiftIn and ShiftOut will fail if the feeRecipient is 0x0\n require(_nextFeeRecipient != address(0x0), \"fee recipient cannot be 0x0\");\n\n feeRecipient = _nextFeeRecipient;\n }\n\n /// @notice Allow the owner to update the fee.\n ///\n /// @param _nextFee The new fee for minting and burning.\n function updateFee(uint16 _nextFee) public onlyOwner {\n fee = _nextFee;\n }\n\n /// @notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _pHash (payload hash) The hash of the payload associated with the\n /// shift.\n /// @param _amount The amount of the token being shifted int, in its\n /// smallest value. (e.g. satoshis for BTC)\n /// @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n /// @param _sig The signature of the hash of the following values:\n /// (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\n function shiftIn(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes memory _sig) public returns (uint256) {\n // Verify signature\n bytes32 signedMessageHash = hashForSignature(_pHash, _amount, msg.sender, _nHash);\n require(status[signedMessageHash] == false, \"nonce hash already spent\");\n if (!verifySignature(signedMessageHash, _sig)) {\n // Return a detailed string containing the hash and recovered\n // signer. This is a costly operation but is only run in the revert\n // branch.\n revert(\n String.add4(\n \"invalid signature - hash: \",\n String.fromBytes32(signedMessageHash),\n \", signer: \",\n String.fromAddress(ECDSA.recover(signedMessageHash, _sig))\n )\n );\n }\n status[signedMessageHash] = true;\n\n // Mint `amount - fee` for the recipient and mint `fee` for the minter\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n uint256 receivedAmount = _amount.sub(absoluteFee);\n token.mint(msg.sender, receivedAmount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n emit LogShiftIn(msg.sender, receivedAmount, nextShiftID);\n nextShiftID += 1;\n\n return receivedAmount;\n }\n\n /// @notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _to The address to receive the unshifted digital asset. The\n /// format of this address should be of the destination chain.\n /// For example, when shifting out to Bitcoin, _to should be a\n /// Bitcoin address.\n /// @param _amount The amount of the token being shifted out, in its\n /// smallest value. (e.g. satoshis for BTC)\n function shiftOut(bytes memory _to, uint256 _amount) public returns (uint256) {\n // The recipient must not be empty. Better validation is possible,\n // but would need to be customized for each destination ledger.\n require(_to.length != 0, \"to address is empty\");\n\n // Burn full amount and mint fee\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n token.burn(msg.sender, _amount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n uint256 receivedValue = _amount.sub(absoluteFee);\n emit LogShiftOut(_to, receivedValue, nextShiftID, _to);\n nextShiftID += 1;\n\n return receivedValue;\n }\n\n /// @notice verifySignature checks the the provided signature matches the provided\n /// parameters.\n function verifySignature(bytes32 _signedMessageHash, bytes memory _sig) public view returns (bool) {\n return mintAuthority == ECDSA.recover(_signedMessageHash, _sig);\n }\n\n /// @notice hashForSignature hashes the parameters so that they can be signed.\n function hashForSignature(bytes32 _pHash, uint256 _amount, address _to, bytes32 _nHash) public view returns (bytes32) {\n return keccak256(abi.encode(_pHash, _amount, address(token), _to, _nHash));\n }\n}\n\n/// @dev The following are not necessary for deploying BTCShifter or ZECShifter\n/// contracts, but are used to track deployments.\ncontract BTCShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}\n\ncontract ZECShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -11428,82 +502,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:47:45.121Z", - "devdoc": { - "details": "The following are not necessary for deploying BTCShifter or ZECShifter contracts, but are used to track deployments.", - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "params": { - "_amount": "The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)", - "_nHash": "(nonce hash) The hash of the nonce, amount and pHash.", - "_pHash": "(payload hash) The hash of the payload associated with the shift.", - "_sig": "The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority." - } - }, - "shiftOut(bytes,uint256)": { - "params": { - "_amount": "The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)", - "_to": "The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address." - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "updateFee(uint16)": { - "params": { - "_nextFee": "The new fee for minting and burning." - } - }, - "updateFeeRecipient(address)": { - "params": { - "_nextFeeRecipient": "The address to start paying fees to." - } - }, - "updateMintAuthority(address)": { - "params": { - "_nextMintAuthority": "The address to start paying fees to." - } - } - } - }, - "userdoc": { - "methods": { - "claimTokenOwnership()": { - "notice": "Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function." - }, - "hashForSignature(bytes32,uint256,address,bytes32)": { - "notice": "hashForSignature hashes the parameters so that they can be signed." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "notice": "shiftIn mints tokens after taking a fee for the `_feeRecipient`. " - }, - "shiftOut(bytes,uint256)": { - "notice": "shiftOut burns tokens after taking a fee for the `_feeRecipient`. " - }, - "transferTokenOwnership(address)": { - "notice": "Allow the owner to update the owner of the ERC20Shifted token." - }, - "updateFee(uint16)": { - "notice": "Allow the owner to update the fee. " - }, - "updateFeeRecipient(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "updateMintAuthority(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "verifySignature(bytes32,bytes)": { - "notice": "verifySignature checks the the provided signature matches the provided parameters." - } - } - } + "updatedAt": "2019-07-16T00:47:45.121Z" } \ No newline at end of file diff --git a/build/localnet/DarknodePayment.json b/build/localnet/DarknodePayment.json index 59fc678f..e4852e8e 100644 --- a/build/localnet/DarknodePayment.json +++ b/build/localnet/DarknodePayment.json @@ -762,24405 +762,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"previousCycleRewardShare\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pendingTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"darknodeBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_durationSeconds\",\"type\":\"uint256\"}],\"name\":\"updateCycleDuration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"shareCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardClaimed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"unclaimedRewards\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"store\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"updateBlacklister\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"changeCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blacklister\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokenIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleTimeout\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"previousCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"currentCycleRewardPool\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"withdrawMultiple\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ETHEREUM\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_darknodeRegistry\",\"type\":\"address\"},{\"name\":\"_darknodePaymentStore\",\"type\":\"address\"},{\"name\":\"_cycleDurationSeconds\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeWhitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cycle\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_payer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogPaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_payee\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogDarknodeWithdrew\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newCycle\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_lastCycle\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_cycleTimeout\",\"type\":\"uint256\"}],\"name\":\"LogNewCycle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_oldDuration\",\"type\":\"uint256\"}],\"name\":\"LogCycleDurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newBlacklister\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_oldBlacklister\",\"type\":\"address\"}],\"name\":\"LogBlacklisterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogTokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogTokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"blacklist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to blacklist\"}},\"claim(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to claim\"}},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_cycleDurationSeconds\":\"The minimum time before a new cycle can occur in seconds\",\"_darknodePaymentStore\":\"The address of the DarknodePaymentStore contract\",\"_darknodeRegistry\":\"The address of the DarknodeRegistry contract\"}},\"deposit(uint256,address)\":{\"params\":{\"_token\":\"The token address\",\"_value\":\"The amount of token deposit in the token's smallest unit.\"}},\"deregisterToken(address)\":{\"params\":{\"_token\":\"The address of the token to be deregistered.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerToken(address)\":{\"params\":{\"_token\":\"The address of the token to be registered.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferStoreOwnership(address)\":{\"params\":{\"_newOwner\":\"The address to transfer the ownership to.\"}},\"updateBlacklister(address)\":{\"params\":{\"_addr\":\"The new Blacklister contract address.\"}},\"updateCycleDuration(uint256)\":{\"params\":{\"_durationSeconds\":\"The amount of time (in seconds) that should have passed before a new cycle can be called.\"}},\"withdraw(address,address)\":{\"params\":{\"_darknode\":\"The address of the darknode\",\"_token\":\"Which token to transfer\"}}}},\"userdoc\":{\"methods\":{\"blacklist(address)\":{\"notice\":\"Blacklists a darknode from participating in rewards. \"},\"changeCycle()\":{\"notice\":\"Changes the current cycle.\"},\"claim(address)\":{\"notice\":\"Claims the rewards allocated to the darknode last cycle and increments the darknode balances. Whitelists the darknode if it hasn't already been whitelisted. If a darknode does not call claim() then the rewards for the previous cycle is lost. \"},\"claimStoreOwnership()\":{\"notice\":\"Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another DarknodePaymentStore.\"},\"constructor\":\"The contract constructor. Starts the current cycle using the time of deploy. \",\"currentCycleRewardPool(address)\":{\"notice\":\"The current balance of the contract available as reward for the current cycle\"},\"deposit(uint256,address)\":{\"notice\":\"Deposits token into the contract to be paid to the Darknodes \"},\"deregisterToken(address)\":{\"notice\":\"Removes a token from the list of supported tokens. Deregistration is pending until next cycle. \"},\"registerToken(address)\":{\"notice\":\"Adds tokens to be payable. Registration is pending until next cycle. \"},\"transferStoreOwnership(address)\":{\"notice\":\"Allows the contract owner to initiate an ownership transfer of the DarknodePaymentStore. \"},\"updateBlacklister(address)\":{\"notice\":\"Updates the Blacklister contract address. \"},\"updateCycleDuration(uint256)\":{\"notice\":\"Updates cycle duration \"},\"withdraw(address,address)\":{\"notice\":\"Transfers the funds allocated to the darknode to the darknode owner. \"}},\"notice\":\"DarknodePayment is responsible for paying off darknodes for their computation.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol\":\"DarknodePayment\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol\":{\"keccak256\":\"0x392181844a36f9a56b437d62a1cbf938248e6bcc9a1dc831d84c261b7444c405\",\"urls\":[\"bzzr://fc7cd553ee01034cedcce4ba7d17b221d429fd97c48ab6bed5f592cd0020acb0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":{\"keccak256\":\"0x5fa14e396e45b93df54c1641ce8d0d83fa8ac3ec6679bb969b4088360e2f97d5\",\"urls\":[\"bzzr://de076428cc66269df2aa797cee62012ff56c963eeb1dfee77314731f9ea98200\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol\":{\"keccak256\":\"0xb9e38917912b1ff2e0a1d6996636170c0af89fb412d4168a5dfa6c9a55b2f71a\",\"urls\":[\"bzzr://238d0af72f2ac122a434f414df1707630b5a07fee0e042fdf94b97f202f34ac0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzzr://f7f6da60a184233fd666ac44e6fb2bd51ca6ebdc4867a310d368049aa4e62786\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b4838038062002b48833981018060405260808110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b50506020820151604080840151606090940151600080546001600160a01b03191633178082559251949750929550926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38351620000f6906001906020870190620001e6565b50600280546001600160a01b038086166001600160a01b0319928316179092556003805492851692821692909217909155600e82905560048054909116331790554360055542600d8190556200015c9082620022076200016a602090811b91909117901c565b600f55506200028b92505050565b600082820183811015620001df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022957805160ff191683800117855562000259565b8280016001018555821562000259579182015b82811115620002595782518255916020019190600101906200023c565b50620002679291506200026b565b5090565b6200028891905b8082111562000267576000815560010162000272565b90565b6128ad806200029b6000396000f3fe6080604052600436106102045760003560e01c80639a0ba2ea11610118578063c2250a99116100a0578063f75adff81161006f578063f75adff814610713578063f7cdf47c146107a0578063f940e385146107b5578063f9f92be4146107f0578063ffa1ad741461082357610204565b8063c2250a9914610665578063e311481514610698578063e80b2b3d146106ad578063f2fde38b146106e057610204565b8063bab2af1d116100e7578063bab2af1d146105c0578063bab2f552146105f3578063bd10243014610608578063bfdce1991461061d578063c0470bb31461065057610204565b80639a0ba2ea146105395780639e45e0d014610563578063ad38bf2214610578578063b3a2af69146105ab57610204565b806370324b771161019b57806383b781881161016a57806383b781881461047a5780638da5cb5b146104c75780638f32d59b146104dc578063949813b8146104f1578063975057e71461052457610204565b806370324b77146103eb578063715018a61461042657806374c9ea821461043b5780637f03864b1461046557610204565b8063352fc85f116101d7578063352fc85f1461034f5780635bec4cb4146103955780636e553f65146103aa5780636fd689e8146103d657610204565b806305cf47441461028d57806309824a80146102d25780631e83409a14610307578063335e536c1461033a575b6003546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561023d573d6000803e3d6000fd5b506040805134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2005b34801561029957600080fd5b506102c0600480360360208110156102b057600080fd5b50356001600160a01b03166108ad565b60408051918252519081900360200190f35b3480156102de57600080fd5b50610305600480360360208110156102f557600080fd5b50356001600160a01b03166108bf565b005b34801561031357600080fd5b506103056004803603602081101561032a57600080fd5b50356001600160a01b0316610a4d565b34801561034657600080fd5b506102c0610dd3565b34801561035b57600080fd5b506103796004803603602081101561037257600080fd5b5035610dd9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a157600080fd5b506102c0610e00565b610305600480360360408110156103c057600080fd5b50803590602001356001600160a01b0316610e06565b3480156103e257600080fd5b50610305610f87565b3480156103f757600080fd5b506102c06004803603604081101561040e57600080fd5b506001600160a01b038135811691602001351661103b565b34801561043257600080fd5b506103056110ca565b34801561044757600080fd5b506103056004803603602081101561045e57600080fd5b503561115e565b34801561047157600080fd5b506102c06111ef565b34801561048657600080fd5b506104b36004803603604081101561049d57600080fd5b506001600160a01b0381351690602001356111f5565b604080519115158252519081900360200190f35b3480156104d357600080fd5b50610379611215565b3480156104e857600080fd5b506104b3611225565b3480156104fd57600080fd5b506102c06004803603602081101561051457600080fd5b50356001600160a01b0316611236565b34801561053057600080fd5b50610379611248565b34801561054557600080fd5b506103796004803603602081101561055c57600080fd5b5035611257565b34801561056f57600080fd5b50610379611264565b34801561058457600080fd5b506103056004803603602081101561059b57600080fd5b50356001600160a01b0316611273565b3480156105b757600080fd5b506102c0611385565b3480156105cc57600080fd5b50610305600480360360208110156105e357600080fd5b50356001600160a01b0316611570565b3480156105ff57600080fd5b506102c0611633565b34801561061457600080fd5b50610379611639565b34801561062957600080fd5b506102c06004803603602081101561064057600080fd5b50356001600160a01b0316611648565b34801561065c57600080fd5b506102c061165a565b34801561067157600080fd5b506103056004803603602081101561068857600080fd5b50356001600160a01b0316611660565b3480156106a457600080fd5b506102c0611716565b3480156106b957600080fd5b506102c0600480360360208110156106d057600080fd5b50356001600160a01b031661171c565b3480156106ec57600080fd5b506103056004803603602081101561070357600080fd5b50356001600160a01b03166117be565b34801561071f57600080fd5b506103056004803603604081101561073657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561076157600080fd5b82018360208201111561077357600080fd5b8035906020019184602083028401116401000000008311171561079557600080fd5b509092509050611811565b3480156107ac57600080fd5b50610379611849565b3480156107c157600080fd5b50610305600480360360408110156107d857600080fd5b506001600160a01b0381358116916020013516611861565b3480156107fc57600080fd5b506103056004803603602081101561081357600080fd5b50356001600160a01b0316611aee565b34801561082f57600080fd5b50610838611ccf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561087257818101518382015260200161085a565b50505050905090810190601f16801561089f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600c6020526000908152604090205481565b6108c7611225565b6109095760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a6020526040902054156109775760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b60085460005b818110156109f957826001600160a01b03166008828154811061099c57fe5b6000918252602090912001546001600160a01b031614156109f157604051600160e51b62461bcd0281526004018080602001828103825260228152602001806128406022913960400191505060405180910390fd5b60010161097d565b5050600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015610aa057600080fd5b505afa158015610ab4573d6000803e3d6000fd5b505050506040513d6020811015610aca57600080fd5b5051610b205760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e01b63fe575a870281526001600160a01b03808616600483015291518593929092169163fe575a8791602480820192602092909190829003018186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d6020811015610b9d57600080fd5b505115610bf45760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b639a4d6f3b0281526001600160a01b03868116600483015291516000939290921691639a4d6f3b91602480820192602092909190829003018186803b158015610c4857600080fd5b505afa158015610c5c573d6000803e3d6000fd5b505050506040513d6020811015610c7257600080fd5b5051905080610d295760035460408051600160e11b634d8c928d0281526001600160a01b03878116600483015291519190921691639b19251a91602480830192600092919082900301818387803b158015610ccc57600080fd5b505af1158015610ce0573d6000803e3d6000fd5b50506040805142815290516001600160a01b03881693507f7634be097aa1800f447c3ae3ffe9444f1bc44a98bd2c1e986c1883f9f645f2b692509081900360200190a250610dce565b600d548110610d825760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f7420636c61696d20666f722074686973206379636c650000000000604482015290519081900360640190fd5b610d8b84611d5c565b60065460408051918252516001600160a01b038616917f99c5ad5c5f898b30039b8cc54b8c0e6eb423e49bfc965a5999ebad131984e40d919081900360200190a2505b505050565b600d5481565b60088181548110610de657fe5b6000918252602090912001546001600160a01b0316905081565b600e5481565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610ec557348314610e845760408051600160e51b62461bcd02815260206004820152601860248201527f6d69736d617463686564206465706f7369742076616c75650000000000000000604482015290519081900360640190fd5b5060035460405134916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebf573d6000803e3d6000fd5b50610f40565b3415610f1b5760408051600160e51b62461bcd02815260206004820152601960248201527f756e6578706563746564206574686572207472616e7366657200000000000000604482015290519081900360640190fd5b600354610f3d906001600160a01b03848116913391168663ffffffff611f2416565b90505b604080518281526001600160a01b0384166020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2505050565b610f8f611225565b610fd15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b50505050565b60035460408051600160e01b6370324b770281526001600160a01b0385811660048301528481166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561109757600080fd5b505afa1580156110ab573d6000803e3d6000fd5b505050506040513d60208110156110c157600080fd5b50519392505050565b6110d2611225565b6111145760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611166611225565b6111a85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600e805490829055604080518381526020810183905281517f59cbd678a801fd313f133a5efc6be7aee2814b07d41c9d9fb72f91197b2f9d4a929181900390910190a15050565b60075481565b601060209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b600b6020526000908152604090205481565b6003546001600160a01b031681565b60098181548110610de657fe5b6002546001600160a01b031681565b61127b611225565b6112bd5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b03811661131b5760408051600160e51b62461bcd02815260206004820152601860248201527f696e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b600454604080516001600160a01b038085168252909216602083015280517fef549604431567c0cd1b94ebc91fed6cf5cd907f6ff0b63aa1d475dcf8d4901c9281900390910190a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000600f544210156113e15760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f74206379636c65207965743a20746f6f206561726c790000000000604482015290519081900360640190fd5b60055443141561143b5760408051600160e51b62461bcd02815260206004820152600c60248201527f6e6f206e657720626c6f636b0000000000000000000000000000000000000000604482015290519081900360640190fd5b60095460005b8181101561147b576114736009828154811061145957fe5b6000918252602090912001546001600160a01b031661210f565b600101611441565b506005805460065543905542600d819055600e5461149f919063ffffffff61220716565b600f5560035460408051600160e11b630fe37f4702815290516001600160a01b0390921691631fc6fe8e91600480820192602092909190829003018186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d602081101561151457600080fd5b505160075561152161226b565b600554600654600f5460408051938452602084019290925282820152517f6611b6f4e1fb92277f863eca934cba1c2d6987070d73762b72b942720bfe43a29181900360600190a1505060055490565b611578611225565b6115ba5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a60205260409020546116275760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b6116308161233c565b50565b60055481565b6004546001600160a01b031681565b600a6020526000908152604090205481565b600f5481565b611668611225565b6116aa5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b60035460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b5050505050565b60065481565b6001600160a01b038082166000818152600b60209081526040808320546003548251600160e01b63a0821be30281526004810196909652915193956117b895919492169263a0821be392602480840193829003018186803b15801561178057600080fd5b505afa158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50519063ffffffff61245716565b92915050565b6117c6611225565b6118085760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b611630816124b7565b60005b81811015611035576118418484848481811061182c57fe5b905060200201356001600160a01b0316611861565b600101611814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60025460408051600160e01b631cedf8a30281526001600160a01b03858116600483015291516000939290921691631cedf8a391602480820192602092909190829003018186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b505190506001600160a01b0381166119415760408051600160e51b62461bcd02815260206004820152601660248201527f696e76616c6964206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b6370324b770281526001600160a01b0386811660048301528581166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b5051905080611a205760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7468696e6720746f20776974686472617700000000000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b63f9ce78130281526001600160a01b03878116600483015286811660248301526044820185905285811660648301529151919092169163f9ce781391608480830192600092919082900301818387803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b5050604080518481526001600160a01b038781166020830152825190891694507fe1f157c0881b2e477dca89772b158029611366b8e7dc8be4f6f308fa7a0aa02893509081900390910190a250505050565b6004546001600160a01b03163314611b505760408051600160e51b62461bcd02815260206004820152600f60248201527f6e6f7420426c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d6020811015611bcd57600080fd5b5051611c235760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e21b633e7e4af90281526001600160a01b0385811660048301529151919092169163f9f92be491602480830192600092919082900301818387803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b50506040805142815290516001600160a01b03861693507fd2b847810d644004679c7a8d5f5188fe2b12b6f34dba8501760d99232fa9b7bc92509081900360200190a25050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b505050505081565b6001600160a01b0381166000908152601060209081526040808320600654845290915290205460ff1615611dda5760408051600160e51b62461bcd02815260206004820152601660248201527f72657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260106020908152604080832060065484529091528120805460ff19166001179055600954905b81811015610dce57600060098281548110611e2657fe5b60009182526020808320909101546001600160a01b0316808352600c90915260409091205490915015611f1b576001600160a01b0381166000908152600c6020908152604080832054600b90925290912054611e879163ffffffff61245716565b6001600160a01b038083166000818152600b6020908152604080832095909555600354600c909152848220548551600160e01b63d23b90a50281528a86166004820152602481019490945260448401529351939092169263d23b90a59260648084019391929182900301818387803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505050505b50600101611e0f565b600080856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7d57600080fd5b505afa158015611f91573d6000803e3d6000fd5b505050506040513d6020811015611fa757600080fd5b5051604080516001600160a01b0388811660248301528716604482015260648082018790528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd0217905290915061200990879061255a565b61201161271f565b6120655760408051600160e51b62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000866001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b50519050612104846120ff838563ffffffff61245716565b612753565b979650505050505050565b600754612141576001600160a01b0381166000908152600b60209081526040808320839055600c909152812055611630565b60035460408051600160e01b63a0821be30281526001600160a01b0384811660048301529151919092169163a0821be3916024808301926020929190829003018186803b15801561219157600080fd5b505afa1580156121a5573d6000803e3d6000fd5b505050506040513d60208110156121bb57600080fd5b50516001600160a01b0382166000908152600b602052604090208190556007546121eb919063ffffffff61276916565b6001600160a01b0382166000908152600c602052604090205550565b6000828201838110156122645760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60085460005b8181101561232a5760006008828154811061228857fe5b6000918252602080832090910154600980546001810182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03909316928317905554818452600a835260409384902055825181815292519093507fd780ddbc43f0c4efd61c5ca1bc8eeee3368abfb1f97aa7355da9f8bf8431c8ae9281900390910190a150600101612271565b5060006123386008826127dc565b5050565b600980546000919061235590600163ffffffff61245716565b8154811061235f57fe5b60009182526020808320909101546001600160a01b038581168452600a90925260408320549116925061239990600163ffffffff61245716565b905081600982815481106123a957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600a905260408082205492851682529020556009546123f6906001612457565b6124016009826127dc565b506001600160a01b0383166000818152600a6020908152604080832092909255815192835290517fe46f21bb6906b7d69a6c06d5662a2b6c1c59d134cd7b1235babdb1a70a4b436a9281900390910190a1505050565b6000828211156124b15760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0381166124ff57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061281a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61256c826001600160a01b03166127d6565b6125c05760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125fe5780518252601f1990920191602091820191016125df565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b5091509150816126b65760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115611035578080602001905160208110156126d257600080fd5b50516110355760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b6000803d8015612736576020811461273f5761274b565b6001915061274b565b60206000803e60005191505b501515905090565b60008183106127625781612264565b5090919050565b60008082116127c25760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127cd57fe5b04949350505050565b3b151590565b815481835581811115610dce57600083815260209020610dce91810190830161122291905b808211156128155760008155600101612801565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820b09be68cbc93dd6791f672fb84489172de5ab08d82093f834649ac27077dab7a0029", - "deployedBytecode": "0x6080604052600436106102045760003560e01c80639a0ba2ea11610118578063c2250a99116100a0578063f75adff81161006f578063f75adff814610713578063f7cdf47c146107a0578063f940e385146107b5578063f9f92be4146107f0578063ffa1ad741461082357610204565b8063c2250a9914610665578063e311481514610698578063e80b2b3d146106ad578063f2fde38b146106e057610204565b8063bab2af1d116100e7578063bab2af1d146105c0578063bab2f552146105f3578063bd10243014610608578063bfdce1991461061d578063c0470bb31461065057610204565b80639a0ba2ea146105395780639e45e0d014610563578063ad38bf2214610578578063b3a2af69146105ab57610204565b806370324b771161019b57806383b781881161016a57806383b781881461047a5780638da5cb5b146104c75780638f32d59b146104dc578063949813b8146104f1578063975057e71461052457610204565b806370324b77146103eb578063715018a61461042657806374c9ea821461043b5780637f03864b1461046557610204565b8063352fc85f116101d7578063352fc85f1461034f5780635bec4cb4146103955780636e553f65146103aa5780636fd689e8146103d657610204565b806305cf47441461028d57806309824a80146102d25780631e83409a14610307578063335e536c1461033a575b6003546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561023d573d6000803e3d6000fd5b506040805134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2005b34801561029957600080fd5b506102c0600480360360208110156102b057600080fd5b50356001600160a01b03166108ad565b60408051918252519081900360200190f35b3480156102de57600080fd5b50610305600480360360208110156102f557600080fd5b50356001600160a01b03166108bf565b005b34801561031357600080fd5b506103056004803603602081101561032a57600080fd5b50356001600160a01b0316610a4d565b34801561034657600080fd5b506102c0610dd3565b34801561035b57600080fd5b506103796004803603602081101561037257600080fd5b5035610dd9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a157600080fd5b506102c0610e00565b610305600480360360408110156103c057600080fd5b50803590602001356001600160a01b0316610e06565b3480156103e257600080fd5b50610305610f87565b3480156103f757600080fd5b506102c06004803603604081101561040e57600080fd5b506001600160a01b038135811691602001351661103b565b34801561043257600080fd5b506103056110ca565b34801561044757600080fd5b506103056004803603602081101561045e57600080fd5b503561115e565b34801561047157600080fd5b506102c06111ef565b34801561048657600080fd5b506104b36004803603604081101561049d57600080fd5b506001600160a01b0381351690602001356111f5565b604080519115158252519081900360200190f35b3480156104d357600080fd5b50610379611215565b3480156104e857600080fd5b506104b3611225565b3480156104fd57600080fd5b506102c06004803603602081101561051457600080fd5b50356001600160a01b0316611236565b34801561053057600080fd5b50610379611248565b34801561054557600080fd5b506103796004803603602081101561055c57600080fd5b5035611257565b34801561056f57600080fd5b50610379611264565b34801561058457600080fd5b506103056004803603602081101561059b57600080fd5b50356001600160a01b0316611273565b3480156105b757600080fd5b506102c0611385565b3480156105cc57600080fd5b50610305600480360360208110156105e357600080fd5b50356001600160a01b0316611570565b3480156105ff57600080fd5b506102c0611633565b34801561061457600080fd5b50610379611639565b34801561062957600080fd5b506102c06004803603602081101561064057600080fd5b50356001600160a01b0316611648565b34801561065c57600080fd5b506102c061165a565b34801561067157600080fd5b506103056004803603602081101561068857600080fd5b50356001600160a01b0316611660565b3480156106a457600080fd5b506102c0611716565b3480156106b957600080fd5b506102c0600480360360208110156106d057600080fd5b50356001600160a01b031661171c565b3480156106ec57600080fd5b506103056004803603602081101561070357600080fd5b50356001600160a01b03166117be565b34801561071f57600080fd5b506103056004803603604081101561073657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561076157600080fd5b82018360208201111561077357600080fd5b8035906020019184602083028401116401000000008311171561079557600080fd5b509092509050611811565b3480156107ac57600080fd5b50610379611849565b3480156107c157600080fd5b50610305600480360360408110156107d857600080fd5b506001600160a01b0381358116916020013516611861565b3480156107fc57600080fd5b506103056004803603602081101561081357600080fd5b50356001600160a01b0316611aee565b34801561082f57600080fd5b50610838611ccf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561087257818101518382015260200161085a565b50505050905090810190601f16801561089f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600c6020526000908152604090205481565b6108c7611225565b6109095760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a6020526040902054156109775760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b60085460005b818110156109f957826001600160a01b03166008828154811061099c57fe5b6000918252602090912001546001600160a01b031614156109f157604051600160e51b62461bcd0281526004018080602001828103825260228152602001806128406022913960400191505060405180910390fd5b60010161097d565b5050600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015610aa057600080fd5b505afa158015610ab4573d6000803e3d6000fd5b505050506040513d6020811015610aca57600080fd5b5051610b205760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e01b63fe575a870281526001600160a01b03808616600483015291518593929092169163fe575a8791602480820192602092909190829003018186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d6020811015610b9d57600080fd5b505115610bf45760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b639a4d6f3b0281526001600160a01b03868116600483015291516000939290921691639a4d6f3b91602480820192602092909190829003018186803b158015610c4857600080fd5b505afa158015610c5c573d6000803e3d6000fd5b505050506040513d6020811015610c7257600080fd5b5051905080610d295760035460408051600160e11b634d8c928d0281526001600160a01b03878116600483015291519190921691639b19251a91602480830192600092919082900301818387803b158015610ccc57600080fd5b505af1158015610ce0573d6000803e3d6000fd5b50506040805142815290516001600160a01b03881693507f7634be097aa1800f447c3ae3ffe9444f1bc44a98bd2c1e986c1883f9f645f2b692509081900360200190a250610dce565b600d548110610d825760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f7420636c61696d20666f722074686973206379636c650000000000604482015290519081900360640190fd5b610d8b84611d5c565b60065460408051918252516001600160a01b038616917f99c5ad5c5f898b30039b8cc54b8c0e6eb423e49bfc965a5999ebad131984e40d919081900360200190a2505b505050565b600d5481565b60088181548110610de657fe5b6000918252602090912001546001600160a01b0316905081565b600e5481565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610ec557348314610e845760408051600160e51b62461bcd02815260206004820152601860248201527f6d69736d617463686564206465706f7369742076616c75650000000000000000604482015290519081900360640190fd5b5060035460405134916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebf573d6000803e3d6000fd5b50610f40565b3415610f1b5760408051600160e51b62461bcd02815260206004820152601960248201527f756e6578706563746564206574686572207472616e7366657200000000000000604482015290519081900360640190fd5b600354610f3d906001600160a01b03848116913391168663ffffffff611f2416565b90505b604080518281526001600160a01b0384166020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2505050565b610f8f611225565b610fd15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b50505050565b60035460408051600160e01b6370324b770281526001600160a01b0385811660048301528481166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561109757600080fd5b505afa1580156110ab573d6000803e3d6000fd5b505050506040513d60208110156110c157600080fd5b50519392505050565b6110d2611225565b6111145760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611166611225565b6111a85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600e805490829055604080518381526020810183905281517f59cbd678a801fd313f133a5efc6be7aee2814b07d41c9d9fb72f91197b2f9d4a929181900390910190a15050565b60075481565b601060209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b600b6020526000908152604090205481565b6003546001600160a01b031681565b60098181548110610de657fe5b6002546001600160a01b031681565b61127b611225565b6112bd5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b03811661131b5760408051600160e51b62461bcd02815260206004820152601860248201527f696e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b600454604080516001600160a01b038085168252909216602083015280517fef549604431567c0cd1b94ebc91fed6cf5cd907f6ff0b63aa1d475dcf8d4901c9281900390910190a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000600f544210156113e15760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f74206379636c65207965743a20746f6f206561726c790000000000604482015290519081900360640190fd5b60055443141561143b5760408051600160e51b62461bcd02815260206004820152600c60248201527f6e6f206e657720626c6f636b0000000000000000000000000000000000000000604482015290519081900360640190fd5b60095460005b8181101561147b576114736009828154811061145957fe5b6000918252602090912001546001600160a01b031661210f565b600101611441565b506005805460065543905542600d819055600e5461149f919063ffffffff61220716565b600f5560035460408051600160e11b630fe37f4702815290516001600160a01b0390921691631fc6fe8e91600480820192602092909190829003018186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d602081101561151457600080fd5b505160075561152161226b565b600554600654600f5460408051938452602084019290925282820152517f6611b6f4e1fb92277f863eca934cba1c2d6987070d73762b72b942720bfe43a29181900360600190a1505060055490565b611578611225565b6115ba5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a60205260409020546116275760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b6116308161233c565b50565b60055481565b6004546001600160a01b031681565b600a6020526000908152604090205481565b600f5481565b611668611225565b6116aa5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b60035460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b5050505050565b60065481565b6001600160a01b038082166000818152600b60209081526040808320546003548251600160e01b63a0821be30281526004810196909652915193956117b895919492169263a0821be392602480840193829003018186803b15801561178057600080fd5b505afa158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50519063ffffffff61245716565b92915050565b6117c6611225565b6118085760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b611630816124b7565b60005b81811015611035576118418484848481811061182c57fe5b905060200201356001600160a01b0316611861565b600101611814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60025460408051600160e01b631cedf8a30281526001600160a01b03858116600483015291516000939290921691631cedf8a391602480820192602092909190829003018186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b505190506001600160a01b0381166119415760408051600160e51b62461bcd02815260206004820152601660248201527f696e76616c6964206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b6370324b770281526001600160a01b0386811660048301528581166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b5051905080611a205760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7468696e6720746f20776974686472617700000000000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b63f9ce78130281526001600160a01b03878116600483015286811660248301526044820185905285811660648301529151919092169163f9ce781391608480830192600092919082900301818387803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b5050604080518481526001600160a01b038781166020830152825190891694507fe1f157c0881b2e477dca89772b158029611366b8e7dc8be4f6f308fa7a0aa02893509081900390910190a250505050565b6004546001600160a01b03163314611b505760408051600160e51b62461bcd02815260206004820152600f60248201527f6e6f7420426c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d6020811015611bcd57600080fd5b5051611c235760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e21b633e7e4af90281526001600160a01b0385811660048301529151919092169163f9f92be491602480830192600092919082900301818387803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b50506040805142815290516001600160a01b03861693507fd2b847810d644004679c7a8d5f5188fe2b12b6f34dba8501760d99232fa9b7bc92509081900360200190a25050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b505050505081565b6001600160a01b0381166000908152601060209081526040808320600654845290915290205460ff1615611dda5760408051600160e51b62461bcd02815260206004820152601660248201527f72657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260106020908152604080832060065484529091528120805460ff19166001179055600954905b81811015610dce57600060098281548110611e2657fe5b60009182526020808320909101546001600160a01b0316808352600c90915260409091205490915015611f1b576001600160a01b0381166000908152600c6020908152604080832054600b90925290912054611e879163ffffffff61245716565b6001600160a01b038083166000818152600b6020908152604080832095909555600354600c909152848220548551600160e01b63d23b90a50281528a86166004820152602481019490945260448401529351939092169263d23b90a59260648084019391929182900301818387803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505050505b50600101611e0f565b600080856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7d57600080fd5b505afa158015611f91573d6000803e3d6000fd5b505050506040513d6020811015611fa757600080fd5b5051604080516001600160a01b0388811660248301528716604482015260648082018790528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd0217905290915061200990879061255a565b61201161271f565b6120655760408051600160e51b62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000866001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b50519050612104846120ff838563ffffffff61245716565b612753565b979650505050505050565b600754612141576001600160a01b0381166000908152600b60209081526040808320839055600c909152812055611630565b60035460408051600160e01b63a0821be30281526001600160a01b0384811660048301529151919092169163a0821be3916024808301926020929190829003018186803b15801561219157600080fd5b505afa1580156121a5573d6000803e3d6000fd5b505050506040513d60208110156121bb57600080fd5b50516001600160a01b0382166000908152600b602052604090208190556007546121eb919063ffffffff61276916565b6001600160a01b0382166000908152600c602052604090205550565b6000828201838110156122645760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60085460005b8181101561232a5760006008828154811061228857fe5b6000918252602080832090910154600980546001810182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03909316928317905554818452600a835260409384902055825181815292519093507fd780ddbc43f0c4efd61c5ca1bc8eeee3368abfb1f97aa7355da9f8bf8431c8ae9281900390910190a150600101612271565b5060006123386008826127dc565b5050565b600980546000919061235590600163ffffffff61245716565b8154811061235f57fe5b60009182526020808320909101546001600160a01b038581168452600a90925260408320549116925061239990600163ffffffff61245716565b905081600982815481106123a957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600a905260408082205492851682529020556009546123f6906001612457565b6124016009826127dc565b506001600160a01b0383166000818152600a6020908152604080832092909255815192835290517fe46f21bb6906b7d69a6c06d5662a2b6c1c59d134cd7b1235babdb1a70a4b436a9281900390910190a1505050565b6000828211156124b15760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0381166124ff57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061281a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61256c826001600160a01b03166127d6565b6125c05760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125fe5780518252601f1990920191602091820191016125df565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b5091509150816126b65760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115611035578080602001905160208110156126d257600080fd5b50516110355760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b6000803d8015612736576020811461273f5761274b565b6001915061274b565b60206000803e60005191505b501515905090565b60008183106127625781612264565b5090919050565b60008082116127c25760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127cd57fe5b04949350505050565b3b151590565b815481835581811115610dce57600083815260209020610dce91810190830161122291905b808211156128155760008155600101612801565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820b09be68cbc93dd6791f672fb84489172de5ab08d82093f834649ac27077dab7a0029", - "sourceMap": "458:16695:1:-;;;6463:610;8:9:-1;5:2;;;30:1;27;20:12;5:2;6463:610:1;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6463:610:1;;;;;;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;;6463:610:1;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;6463:610:1;;-1:-1:-1;6463:610:1;;-1:-1:-1;6463:610:1;-1:-1:-1;;;;;724:6:36;;;;;657;691:40;;657:6;;691:40;6665:18:1;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;6693:16:1;:36;;-1:-1:-1;;;;;6693:36:1;;;-1:-1:-1;;;;;;6693:36:1;;;;;;;6739:5;:29;;;;;;;;;;;;;;;6778:13;:37;;;6869:11;:24;;;;;6883:10;6869:24;;;6954:12;6939;:27;6993:15;6976:14;:32;;;7033:33;;6794:21;7033:18;;;;;;;;;;:33;;:::i;:::-;7018:12;:48;-1:-1:-1;458:16695:1;;-1:-1:-1;;;458:16695:1;834:176:35;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;458:16695:1;;;-1:-1:-1;458:16695:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8084:5;;8076:34;;-1:-1:-1;;;;;8084:5:1;;;;8100:9;8076:34;;;;;8084:5;8076:34;8084:5;8076:34;8100:9;8084:5;8076:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8125:51:1;;;8156:9;8125:51;;730:42;8125:51;;;;;;8144:10;;8125:51;;;;;;;;458:16695;2183:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:59:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2183:59:1;-1:-1:-1;;;;;2183:59:1;;:::i;:::-;;;;;;;;;;;;;;;;11903:376;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11903:376:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11903:376:1;-1:-1:-1;;;;;11903:376:1;;:::i;:::-;;10761:630;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10761:630:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10761:630:1;-1:-1:-1;;;;;10761:630:1;;:::i;2306:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2306:29:1;;;:::i;1501:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1501:30:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1501:30:1;;:::i;:::-;;;;-1:-1:-1;;;;;1501:30:1;;;;;;;;;;;;;;2415:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2415:28:1;;;:::i;9773:606::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9773:606:1;;;;;;-1:-1:-1;;;;;9773:606:1;;:::i;13985:89::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13985:89:1;;;:::i;8469:162::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8469:162:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8469:162:1;;;;;;;;;;:::i;1599:137:36:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1599:137:36;;;:::i;13203:234:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13203:234:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13203:234:1;;:::i;1266:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:25:1;;;:::i;2727:65::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2727:65:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2727:65:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;814:77:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;814:77:36;;;:::i;1165:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:90:36;;;:::i;2012:51:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2012:51:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2012:51:1;-1:-1:-1;;;;;2012:51:1;;:::i;967:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;967:33:1;;;:::i;1650:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1650:33:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1650:33:1;;:::i;779:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;779:40:1;;;:::i;12794:219::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12794:219:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12794:219:1;-1:-1:-1;;;;;12794:219:1;;:::i;8680:882::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8680:882:1;;;:::i;12487:176::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12487:176:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12487:176:1;-1:-1:-1;;;;;12487:176:1;;:::i;1135:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:27:1;;;:::i;1102:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1102:26:1;;;:::i;1793:55::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1793:55:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1793:55:1;-1:-1:-1;;;;;1793:55:1;;:::i;2523:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2523:27:1;;;:::i;13639:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13639:121:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13639:121:1;-1:-1:-1;;;;;13639:121:1;;:::i;1168:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:28:1;;;:::i;8299:164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8299:164:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8299:164:1;-1:-1:-1;;;;;8299:164:1;;:::i;1885:107:36:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1885:107:36;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;7769:196:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7769:196:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;7769:196:1;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7769:196:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7769:196:1;;;;;;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;-1:-1;7769:196:1;;-1:-1:-1;7769:196:1;-1:-1:-1;7769:196:1;:::i;695:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:77:1;;;:::i;7287:476::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7287:476:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7287:476:1;;;;;;;;;;:::i;11540:183::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11540:183:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11540:183:1;-1:-1:-1;;;;;11540:183:1;;:::i;579:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;579:21:1;;;:::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;579:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2183:59;;;;;;;;;;;;;:::o;11903:376::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;11979:28:1;;;;;;:20;:28;;;;;;:33;11971:70;;;;;-1:-1:-1;;;;;11971:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12070:13;:20;12051:16;12100:137;12121:11;12117:1;:15;12100:137;;;12181:6;-1:-1:-1;;;;;12161:26:1;:13;12175:1;12161:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12161:16:1;:26;;12153:73;;;;-1:-1:-1;;;;;12153:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:3;;12100:137;;;-1:-1:-1;;12246:13:1;27:10:-1;;39:1;23:18;;45:23;;-1:-1;12246:26:1;;;;;;;;-1:-1:-1;;;;;;12246:26:1;-1:-1:-1;;;;;12246:26:1;;;;;;;;;;11903:376::o;10761:630::-;5526:16;;:40;;;-1:-1:-1;;;;;5526:40:1;;-1:-1:-1;;;;;5526:40:1;;;;;;;;;10817:9;;5526:16;;;;;:29;;:40;;;;;;;;;;;;;;;:16;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5526:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5526:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5526:40:1;5518:79;;;;;-1:-1:-1;;;;;5518:79:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:5;;:30;;;-1:-1:-1;;;;;5927:30:1;;-1:-1:-1;;;;;5927:30:1;;;;;;;;;10843:9;;5927:5;;;;;:19;;:30;;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5927:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5927:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5927:30:1;5926:31;5918:67;;;;;-1:-1:-1;;;;;5918:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;10890:5;;:34;;;-1:-1:-1;;;;;10890:34:1;;-1:-1:-1;;;;;10890:34:1;;;;;;;;;10864:23;;10890:5;;;;;:23;;:34;;;;;;;;;;;;;;;:5;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10890:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10890:34:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10890:34:1;;-1:-1:-1;10994:20:1;10990:154;;11030:5;;:26;;;-1:-1:-1;;;;;11030:26:1;;-1:-1:-1;;;;;11030:26:1;;;;;;;;;:5;;;;;:15;;:26;;;;;:5;;:26;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11030:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11075:38:1;;;11109:3;11075:38;;;;-1:-1:-1;;;;;11075:38:1;;;-1:-1:-1;11075:38:1;;-1:-1:-1;11075:38:1;;;;;;;;11127:7;;;10990:154;11180:14;;11162:15;:32;11154:72;;;;;-1:-1:-1;;;;;11154:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;11296:31;11317:9;11296:20;:31::i;:::-;11370:13;;11342:42;;;;;;;-1:-1:-1;;;;;11342:42:1;;;;;;;;;;;;;5995:1;;5607;10761:630;;:::o;2306:29::-;;;;:::o;1501:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1501:30:1;;-1:-1:-1;1501:30:1;:::o;2415:28::-;;;;:::o;9773:606::-;9849:21;-1:-1:-1;;;;;9884:18:1;;730:42;9884:18;9880:425;;;9936:9;9926:6;:19;9918:56;;;;;-1:-1:-1;;;;;9918:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10035:5:1;;10027:34;;10004:9;;-1:-1:-1;;;;;10035:5:1;;10027:34;;;;;10004:9;;10035:5;10027:34;10035:5;10027:34;10004:9;10035:5;10027:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10027:34:1;9880:425;;;10100:9;:14;10092:52;;;;;-1:-1:-1;;;;;10092:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;10279:5;;10220:74;;-1:-1:-1;;;;;10220:38:1;;;;10259:10;;10279:5;10287:6;10220:74;:38;:74;:::i;:::-;10204:90;;9880:425;10319:53;;;;;;-1:-1:-1;;;;;10319:53:1;;;;;;;;10338:10;;10319:53;;;;;;;;9773:606;;;:::o;13985:89::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;14045:5:1;;;;;;;;;-1:-1:-1;;;;;14045:5:1;-1:-1:-1;;;;;14045:20:1;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14045:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14045:22:1;;;;13985:89::o;8469:162::-;8581:5;;:43;;;-1:-1:-1;;;;;8581:43:1;;-1:-1:-1;;;;;8581:43:1;;;;;;;;;;;;;;;;8555:7;;8581:5;;;;;:22;;:43;;;;;;;;;;;;;;;:5;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;8581:43:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8581:43:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8581:43:1;;8469:162;-1:-1:-1;;;8469:162:1:o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;13203:234:1:-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;13309:13:1;;;13332:32;;;;13379:51;;;;;;;;;;;;;;;;;;;;;;;;;1074:1:36;13203:234:1;:::o;1266:25::-;;;;:::o;2727:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;2012:51:1:-;;;;;;;;;;;;;:::o;967:33::-;;;-1:-1:-1;;;;;967:33:1;;:::o;1650:::-;;;;;;;;;;779:40;;;-1:-1:-1;;;;;779:40:1;;:::o;12794:219::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;12873:19:1;;12865:56;;;;;-1:-1:-1;;;;;12865:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12965:11;;12936:41;;;-1:-1:-1;;;;;12936:41:1;;;;;12965:11;;;12936:41;;;;;;;;;;;;;;;;12987:11;:19;;-1:-1:-1;;;;;;12987:19:1;-1:-1:-1;;;;;12987:19:1;;;;;;;;;;12794:219::o;8680:882::-;8721:7;8755:12;;8748:3;:19;;8740:59;;;;;-1:-1:-1;;;;;8740:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8833:12;;8817;:28;;8809:53;;;;;-1:-1:-1;;;;;8809:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8940:16;:23;8921:16;8973:101;8994:11;8990:1;:15;8973:101;;;9026:37;9043:16;9060:1;9043:19;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9043:19:1;9026:16;:37::i;:::-;9007:3;;8973:101;;;-1:-1:-1;9129:12:1;;;9113:13;:28;9166:12;9151:27;;9205:15;9188:14;:32;;;9264:13;;9245:33;;9205:15;9245:33;:18;:33;:::i;:::-;9230:12;:48;9350:5;;:31;;;-1:-1:-1;;;;;9350:31:1;;;;-1:-1:-1;;;;;9350:5:1;;;;:29;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;9350:31:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9350:31:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9350:31:1;9337:10;:44;9438:18;:16;:18::i;:::-;9484:12;;9498:13;;9513:12;;9472:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9543:12:1;;8680:882;:::o;12487:176::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;12565:28:1;;12596:1;12565:28;;;:20;:28;;;;;;12557:65;;;;;-1:-1:-1;;;;;12557:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12632:24;12649:6;12632:16;:24::i;:::-;12487:176;:::o;1135:27::-;;;;:::o;1102:26::-;;;-1:-1:-1;;;;;1102:26:1;;:::o;1793:55::-;;;;;;;;;;;;;:::o;2523:27::-;;;;:::o;13639:121::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;13719:5:1;;:34;;;-1:-1:-1;;;;;13719:34:1;;-1:-1:-1;;;;;13719:34:1;;;;;;;;;:5;;;;;:23;;:34;;;;;:5;;:34;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;13719:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13719:34:1;;;;13639:121;:::o;1168:28::-;;;;:::o;8299:164::-;-1:-1:-1;;;;;8431:24:1;;;8370:7;8431:24;;;:16;:24;;;;;;;;;8396:5;;:30;;-1:-1:-1;;;;;8396:30:1;;;;;;;;;;;8370:7;;8396:60;;8431:24;;8396:5;;;:22;;:30;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;8396:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8396:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8396:30:1;;:60;:34;:60;:::i;:::-;8389:67;8299:164;-1:-1:-1;;8299:164:1:o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;7769:196:1:-;7866:6;7861:98;7878:18;;;7861:98;;;7917:31;7926:9;7937:7;;7945:1;7937:10;;;;;;;;;;;;;-1:-1:-1;;;;;7937:10:1;7917:8;:31::i;:::-;7898:3;;7861:98;;695:77;730:42;695:77;:::o;7287:476::-;7389:16;;:44;;;-1:-1:-1;;;;;7389:44:1;;-1:-1:-1;;;;;7389:44:1;;;;;;;;;7357:29;;7389:16;;;;;:33;;:44;;;;;;;;;;;;;;;:16;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;7389:44:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7389:44:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7389:44:1;;-1:-1:-1;;;;;;7451:29:1;;7443:64;;;;;-1:-1:-1;;;;;7443:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7535:5;;:41;;;-1:-1:-1;;;;;7535:41:1;;-1:-1:-1;;;;;7535:41:1;;;;;;;;;;;;;;;;7518:14;;7535:5;;;;;:22;;:41;;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;7535:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7535:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7535:41:1;;-1:-1:-1;7594:10:1;7586:42;;;;;-1:-1:-1;;;;;7586:42:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7639:5;;:56;;;-1:-1:-1;;;;;7639:56:1;;-1:-1:-1;;;;;7639:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;;;;:14;;:56;;;;;:5;;:56;;;;;;;:5;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;7639:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7710:46:1;;;;;;-1:-1:-1;;;;;7710:46:1;;;;;;;;;;;;;-1:-1:-1;7710:46:1;;-1:-1:-1;7710:46:1;;;;;;;;;7287:476;;;;:::o;11540:183::-;5719:11;;-1:-1:-1;;;;;5719:11:1;5734:10;5719:25;5711:53;;;;;-1:-1:-1;;;;;5711:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5526:16;;:40;;;-1:-1:-1;;;;;5526:40:1;;-1:-1:-1;;;;;5526:40:1;;;;;;;;;11616:9;;5526:16;;;;;:29;;:40;;;;;;;;;;;;;;;:16;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5526:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5526:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5526:40:1;5518:79;;;;;-1:-1:-1;;;;;5518:79:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;11637:5;;:26;;;-1:-1:-1;;;;;11637:26:1;;-1:-1:-1;;;;;11637:26:1;;;;;;;;;:5;;;;;:15;;:26;;;;;:5;;:26;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11637:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11678:38:1;;;11712:3;11678:38;;;;-1:-1:-1;;;;;11678:38:1;;;-1:-1:-1;11678:38:1;;-1:-1:-1;11678:38:1;;;;;;;;5774:1;11540:183;:::o;579:21::-;;;;;;;;;;;;;;;-1:-1:-1;;579:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14358:712::-;-1:-1:-1;;;;;14434:24:1;;;;;;:13;:24;;;;;;;;14459:13;;14434:39;;;;;;;;;;14433:40;14425:75;;;;;-1:-1:-1;;;;;14425:75:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:24:1;;;;;;:13;:24;;;;;;;;14535:13;;14510:39;;;;;;;:46;;-1:-1:-1;;14510:46:1;14552:4;14510:46;;;14585:16;:23;;14618:446;14639:11;14635:1;:15;14618:446;;;14671:13;14687:16;14704:1;14687:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14687:19:1;14799:31;;;:24;:31;;;;;;;;14687:19;;-1:-1:-1;14799:35:1;14795:259;;-1:-1:-1;;;;;14908:31:1;;;;;;:24;:31;;;;;;;;;14880:16;:23;;;;;;;:60;;;:27;:60;:::i;:::-;-1:-1:-1;;;;;14854:23:1;;;;;;;:16;:23;;;;;;;;:86;;;;14958:5;;15007:24;:31;;;;;;;14958:81;;-1:-1:-1;;;;;14958:81:1;;;;;;;;;;;;;;;;;;;;;;:5;;;;;:30;;:81;;;;;14854:23;;14958:81;;;;;;14854:23;14958:5;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;14958:81:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14958:81:1;;;;14795:259;-1:-1:-1;14652:3:1;;14618:446;;1461:465:15;1568:7;1587:22;1612:5;-1:-1:-1;;;;;1612:15:15;;1628:2;1612:19;;;;;;;;;;;;;-1:-1:-1;;;;;1612:19:15;-1:-1:-1;;;;;1612:19:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1612:19:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1612:19:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1612:19:15;1667:68;;;-1:-1:-1;;;;;1667:68:15;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1667:68:15;;;;;;;1612:19;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;1612:19:15;;-1:-1:-1;1641:95:15;;1660:5;;1641:18;:95::i;:::-;1754:21;:19;:21::i;:::-;1746:53;;;;;-1:-1:-1;;;;;1746:53:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:21;1833:5;-1:-1:-1;;;;;1833:15:15;;1849:2;1833:19;;;;;;;;;;;;;-1:-1:-1;;;;;1833:19:15;-1:-1:-1;;;;;1833:19:15;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1833:19:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1833:19:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1833:19:15;;-1:-1:-1;1869:50:15;1878:5;1885:33;1833:19;1903:14;1885:33;:17;:33;:::i;:::-;1869:8;:50::i;:::-;1862:57;1461:465;-1:-1:-1;;;;;;;1461:465:15:o;15245:441:1:-;15309:10;;15305:375;;-1:-1:-1;;;;;15340:24:1;;15367:1;15340:24;;;:16;:24;;;;;;;;:28;;;15382:24;:32;;;;;:36;15305:375;;;15550:5;;:30;;;-1:-1:-1;;;;;15550:30:1;;-1:-1:-1;;;;;15550:30:1;;;;;;;;;:5;;;;;:22;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15550:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15550:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15550:30:1;-1:-1:-1;;;;;15523:24:1;;;;;;:16;15550:30;15523:24;;;;:57;;;15658:10;;15629:40;;15550:30;15629:40;:28;:40;:::i;:::-;-1:-1:-1;;;;;15594:32:1;;;;;;:24;:32;;;;;:75;15245:441;:::o;834:176:35:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;16739:411:1:-;16831:13;:20;16812:16;16861:249;16882:11;16878:1;:15;16861:249;;;16914:13;16930;16944:1;16930:16;;;;;;;;;;;;;;;;;;;;16960;27:10:-1;;16930:16:1;23:18:-1;;45:23;;16960:28:1;;;;-1:-1:-1;;;;;;16960:28:1;-1:-1:-1;;;;;16930:16:1;;;16960:28;;;;;17032:23;17002:27;;;:20;:27;;;;;;;:53;17074:25;;;;;;;16930:16;;-1:-1:-1;17074:25:1;;;;;;;;;;-1:-1:-1;16895:3:1;;16861:249;;;-1:-1:-1;17142:1:1;17119:24;:13;17142:1;17119:24;:::i;:::-;;16739:411;:::o;15862:688::-;15942:16;15959:23;;15922:17;;15942:16;15959:30;;15987:1;15959:30;:27;:30;:::i;:::-;15942:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16028:28:1;;;;;:20;:28;;;;;;;15942:48;;;-1:-1:-1;16028:35:1;;15942:48;16028:35;:32;:35;:::i;:::-;16000:63;;16185:9;16147:16;16164:17;16147:35;;;;;;;;;;;;;;;;;;;;:47;;-1:-1:-1;;;;;;16147:47:1;-1:-1:-1;;;;;16147:47:1;;;;;;16238:28;;;;;:20;:28;;;;;;;16204:31;;;;;;;:62;16427:16;:23;:30;;-1:-1:-1;16427:27:1;:30::i;:::-;16401:56;:16;:56;;:::i;:::-;-1:-1:-1;;;;;;16467:28:1;;16498:1;16467:28;;;:20;:28;;;;;;;;:32;;;;16515:28;;;;;;;;;;;;;;;;;15862:688;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o;3398:930:15:-;3941:27;3949:5;-1:-1:-1;;;;;3941:25:15;;:27::i;:::-;3933:55;;;;;-1:-1:-1;;;;;3933:55:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:12;4073:23;4108:5;-1:-1:-1;;;;;4100:19:15;4120:4;4100:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4100:25:15;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4058:67:15;;;;4143:7;4135:37;;;;;-1:-1:-1;;;;;4135:37:15;;;;;;;;;;;;-1:-1:-1;;;;;4135:37:15;;;;;;;;;;;;;;;4187:17;;:21;4183:139;;4270:10;4259:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4259:30:15;4251:60;;;;;-1:-1:-1;;;;;4251:60:15;;;;;;;;;;;;-1:-1:-1;;;;;4251:60:15;;;;;;;;;;;;;;4505:810;4558:4;;4770:14;4855:54;;;;4979:2;4974:220;;;;4763:503;;4855:54;4894:1;4880:15;;4855:54;;4974:220;5080:2;5077:1;5074;5059:24;5178:1;5172:8;5158:22;;4763:503;-1:-1:-1;5293:15:15;;;-1:-1:-1;4505:810:15;:::o;358:104:34:-;416:7;446:1;442;:5;:13;;454:1;442:13;;;-1:-1:-1;450:1:34;;435:20;-1:-1:-1;358:104:34:o;2606:326:35:-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;542:413:42:-;902:20;940:8;;;542:413::o;458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\nimport \"../libraries/CompatibleERC20Functions.sol\";\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\nimport \"./DarknodePaymentStore.sol\";\n\n/// @notice DarknodePayment is responsible for paying off darknodes for their\n/// computation.\ncontract DarknodePayment is Ownable {\n using SafeMath for uint256;\n using CompatibleERC20Functions for ERC20;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice The special address for Ether.\n address constant public ETHEREUM = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n DarknodeRegistry public darknodeRegistry; // Passed in as a constructor parameter.\n\n /// @notice DarknodePaymentStore is the storage contract for darknode\n /// payments.\n DarknodePaymentStore public store; // Passed in as a constructor parameter.\n\n /// @notice The address that can call blacklist()\n address public blacklister;\n\n uint256 public currentCycle;\n uint256 public previousCycle;\n\n /// @notice The number of whitelisted darknodes this cycle\n uint256 public shareCount;\n\n /// @notice The list of tokens that will be registered next cycle.\n /// We only update the shareCount at the change of cycle to\n /// prevent the number of shares from changing.\n address[] public pendingTokens;\n\n /// @notice The list of tokens which are already registered and rewards can\n /// be claimed for.\n address[] public registeredTokens;\n\n /// @notice Mapping from token -> index. Index starts from 1. 0 means not in\n /// list.\n mapping(address => uint256) public registeredTokenIndex;\n\n /// @notice Mapping from token -> amount.\n /// The amount of rewards allocated for all darknodes to claim into\n /// their account.\n mapping(address => uint256) public unclaimedRewards;\n\n /// @notice Mapping from token -> amount.\n /// The amount of rewards allocated for each darknode.\n mapping(address => uint256) public previousCycleRewardShare;\n\n /// @notice The time that the current cycle started.\n uint256 public cycleStartTime;\n\n /// @notice The minimum duration that the current cycle must go for.\n uint256 public cycleDuration;\n\n /// @notice The earliest timestamp that changeCycle() can be called.\n uint256 public cycleTimeout;\n\n /// @notice Mapping of darknode -> cycle -> already_claimed\n /// Used to keep track of which darknodes have already claimed their\n /// rewards.\n mapping(address => mapping(uint256 => bool)) public rewardClaimed;\n\n /// @notice Emitted when a darknode is blacklisted from receiving rewards\n /// @param _darknode The address of the darknode which was blacklisted\n /// @param _time The time at which the darknode was blacklisted\n event LogDarknodeBlacklisted(address indexed _darknode, uint256 _time);\n\n /// @notice Emitted when a darknode is whitelisted to receive rewards\n /// @param _darknode The address of the darknode which was whitelisted\n /// @param _time The time at which the darknode was whitelisted\n event LogDarknodeWhitelisted(address indexed _darknode, uint256 _time);\n\n /// @notice Emitted when a darknode claims their share of reward\n /// @param _darknode The darknode which claimed\n /// @param _cycle The cycle that the darknode claimed for\n event LogDarknodeClaim(address indexed _darknode, uint256 _cycle);\n\n /// @notice Emitted when someone pays the DarknodePayment contract\n /// @param _payer The darknode which claimed\n /// @param _amount The cycle that the darknode claimed for\n /// @param _token The address of the token that was transferred\n event LogPaymentReceived(address indexed _payer, uint256 _amount, address _token);\n\n /// @notice Emitted when a darknode calls withdraw\n /// @param _payee The address of the darknode which withdrew\n /// @param _value The amount of DAI withdrawn\n /// @param _token The address of the token that was withdrawn\n event LogDarknodeWithdrew(address indexed _payee, uint256 _value, address _token);\n\n /// @notice Emitted when a new cycle happens\n /// @param _newCycle The new, current cycle\n /// @param _lastCycle The previous cycle\n /// @param _cycleTimeout The earliest a new cycle can be called\n event LogNewCycle(uint256 _newCycle, uint256 _lastCycle, uint256 _cycleTimeout);\n\n /// @notice Emitted when the cycle duration changes\n /// @param _newDuration The new duration\n /// @param _oldDuration The old duration\n event LogCycleDurationChanged(uint256 _newDuration, uint256 _oldDuration);\n\n /// @notice Emitted when the Blacklister contract changes\n /// @param _newBlacklister The new Blacklister\n /// @param _oldBlacklister The old Blacklister\n event LogBlacklisterChanged(address _newBlacklister, address _oldBlacklister);\n\n /// @notice Emitted when a new token is registered\n /// @param _token The token that was registered\n event LogTokenRegistered(address _token);\n\n /// @notice Emitted when a token is deregistered\n /// @param _token The token that was deregistered\n event LogTokenDeregistered(address _token);\n\n /// @notice Restrict a function registered dark nodes to call a function.\n modifier onlyDarknode(address _darknode) {\n require(darknodeRegistry.isRegistered(_darknode), \"darknode is not registered\");\n _;\n }\n\n /// @notice Restrict a function the blacklister.\n modifier onlyBlacklister() {\n require(blacklister == msg.sender, \"not Blacklister\");\n _;\n }\n\n /// @notice Restrict a function darknodes which haven't been blacklisted\n modifier notBlacklisted(address _darknode) {\n require(!store.isBlacklisted(_darknode), \"darknode is blacklisted\");\n _;\n }\n\n /// @notice The contract constructor. Starts the current cycle using the\n /// time of deploy.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _darknodeRegistry The address of the DarknodeRegistry contract\n /// @param _darknodePaymentStore The address of the DarknodePaymentStore\n /// contract\n /// @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds\n constructor(\n string memory _VERSION,\n DarknodeRegistry _darknodeRegistry,\n DarknodePaymentStore _darknodePaymentStore,\n uint256 _cycleDurationSeconds\n ) public {\n VERSION = _VERSION;\n darknodeRegistry = _darknodeRegistry;\n store = _darknodePaymentStore;\n cycleDuration = _cycleDurationSeconds;\n // Default the blacklister to owner\n blacklister = msg.sender;\n\n // Start the current cycle\n currentCycle = block.number;\n cycleStartTime = block.timestamp;\n cycleTimeout = cycleStartTime.add(cycleDuration);\n }\n\n /// @notice Transfers the funds allocated to the darknode to the darknode\n /// owner.\n ///\n /// @param _darknode The address of the darknode\n /// @param _token Which token to transfer\n function withdraw(address _darknode, address _token) public {\n address payable darknodeOwner = darknodeRegistry.getDarknodeOwner(_darknode);\n require(darknodeOwner != address(0x0), \"invalid darknode owner\");\n\n uint256 amount = store.darknodeBalances(_darknode, _token);\n require(amount > 0, \"nothing to withdraw\");\n\n store.transfer(_darknode, _token, amount, darknodeOwner);\n emit LogDarknodeWithdrew(_darknode, amount, _token);\n }\n\n function withdrawMultiple(address _darknode, address[] calldata _tokens) external {\n for (uint i = 0; i < _tokens.length; i++) {\n withdraw(_darknode, _tokens[i]);\n }\n }\n\n /// @notice Forward all payments to the DarknodePaymentStore.\n function () external payable {\n address(store).transfer(msg.value);\n emit LogPaymentReceived(msg.sender, msg.value, ETHEREUM);\n }\n\n /// @notice The current balance of the contract available as reward for the\n /// current cycle\n function currentCycleRewardPool(address _token) external view returns (uint256) {\n return store.availableBalance(_token).sub(unclaimedRewards[_token]);\n }\n\n function darknodeBalances(address _darknodeID, address _token) external view returns (uint256) {\n return store.darknodeBalances(_darknodeID, _token);\n }\n\n /// @notice Changes the current cycle.\n function changeCycle() external returns (uint256) {\n require(now >= cycleTimeout, \"cannot cycle yet: too early\");\n require(block.number != currentCycle, \"no new block\");\n\n // Snapshot balances for the past cycle\n uint arrayLength = registeredTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n _snapshotBalance(registeredTokens[i]);\n }\n\n // Start a new cycle\n previousCycle = currentCycle;\n currentCycle = block.number;\n cycleStartTime = block.timestamp;\n cycleTimeout = cycleStartTime.add(cycleDuration);\n\n // Update the share size for next cycle\n shareCount = store.darknodeWhitelistLength();\n // Update the list of registeredTokens\n _updateTokenList();\n\n emit LogNewCycle(currentCycle, previousCycle, cycleTimeout);\n return currentCycle;\n }\n\n /// @notice Deposits token into the contract to be paid to the Darknodes\n ///\n /// @param _value The amount of token deposit in the token's smallest unit.\n /// @param _token The token address\n function deposit(uint256 _value, address _token) external payable {\n uint256 receivedValue;\n if (_token == ETHEREUM) {\n require(_value == msg.value, \"mismatched deposit value\");\n receivedValue = msg.value;\n address(store).transfer(msg.value);\n } else {\n require(msg.value == 0, \"unexpected ether transfer\");\n // Forward the funds to the store\n receivedValue = ERC20(_token).safeTransferFromWithFees(msg.sender, address(store), _value);\n }\n emit LogPaymentReceived(msg.sender, receivedValue, _token);\n }\n\n /// @notice Claims the rewards allocated to the darknode last cycle and\n /// increments the darknode balances. Whitelists the darknode if it\n /// hasn't already been whitelisted. If a darknode does not call\n /// claim() then the rewards for the previous cycle is lost.\n ///\n /// @param _darknode The address of the darknode to claim\n function claim(address _darknode) external onlyDarknode(_darknode) notBlacklisted(_darknode) {\n uint256 whitelistedTime = store.darknodeWhitelist(_darknode);\n\n // The darknode hasn't been whitelisted before\n if (whitelistedTime == 0) {\n store.whitelist(_darknode);\n emit LogDarknodeWhitelisted(_darknode, now);\n return;\n }\n\n require(whitelistedTime < cycleStartTime, \"cannot claim for this cycle\");\n\n // Claim share of rewards allocated for last cycle\n _claimDarknodeReward(_darknode);\n emit LogDarknodeClaim(_darknode, previousCycle);\n }\n\n /// @notice Blacklists a darknode from participating in rewards.\n ///\n /// @param _darknode The address of the darknode to blacklist\n function blacklist(address _darknode) external onlyBlacklister onlyDarknode(_darknode) {\n store.blacklist(_darknode);\n emit LogDarknodeBlacklisted(_darknode, now);\n }\n\n /// @notice Adds tokens to be payable. Registration is pending until next\n /// cycle.\n ///\n /// @param _token The address of the token to be registered.\n function registerToken(address _token) external onlyOwner {\n require(registeredTokenIndex[_token] == 0, \"token already registered\");\n uint arrayLength = pendingTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n require(pendingTokens[i] != _token, \"token already pending registration\");\n }\n pendingTokens.push(_token);\n }\n\n /// @notice Removes a token from the list of supported tokens.\n /// Deregistration is pending until next cycle.\n ///\n /// @param _token The address of the token to be deregistered.\n function deregisterToken(address _token) external onlyOwner {\n require(registeredTokenIndex[_token] > 0, \"token not registered\");\n _deregisterToken(_token);\n }\n\n /// @notice Updates the Blacklister contract address.\n ///\n /// @param _addr The new Blacklister contract address.\n function updateBlacklister(address _addr) external onlyOwner {\n require(_addr != address(0), \"invalid contract address\");\n emit LogBlacklisterChanged(_addr, blacklister);\n blacklister = _addr;\n }\n\n /// @notice Updates cycle duration\n ///\n /// @param _durationSeconds The amount of time (in seconds) that should have\n /// passed before a new cycle can be called.\n function updateCycleDuration(uint256 _durationSeconds) external onlyOwner {\n uint256 oldDuration = cycleDuration;\n cycleDuration = _durationSeconds;\n emit LogCycleDurationChanged(cycleDuration, oldDuration);\n }\n\n /// @notice Allows the contract owner to initiate an ownership transfer of\n /// the DarknodePaymentStore.\n ///\n /// @param _newOwner The address to transfer the ownership to.\n function transferStoreOwnership(address _newOwner) external onlyOwner {\n store.transferOwnership(_newOwner);\n }\n\n /// @notice Claims ownership of the store passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called when\n /// transferring from another DarknodePaymentStore.\n function claimStoreOwnership() external onlyOwner {\n store.claimOwnership();\n }\n\n /// @notice Claims the darknode reward for all registered tokens into\n /// darknodeBalances in the DarknodePaymentStore.\n /// Rewards can only be claimed once per cycle.\n ///\n /// @param _darknode The address to the darknode to claim rewards for\n function _claimDarknodeReward(address _darknode) private {\n require(!rewardClaimed[_darknode][previousCycle], \"reward already claimed\");\n rewardClaimed[_darknode][previousCycle] = true;\n uint arrayLength = registeredTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n address token = registeredTokens[i];\n\n // Only increment balance if shares were allocated last cycle\n if (previousCycleRewardShare[token] > 0) {\n unclaimedRewards[token] = unclaimedRewards[token].sub(previousCycleRewardShare[token]);\n store.incrementDarknodeBalance(_darknode, token, previousCycleRewardShare[token]);\n }\n }\n }\n\n /// @notice Snapshots the current balance of the tokens, for all registered\n /// tokens.\n ///\n /// @param _token The address the token to snapshot.\n function _snapshotBalance(address _token) private {\n if (shareCount == 0) {\n unclaimedRewards[_token] = 0;\n previousCycleRewardShare[_token] = 0;\n } else {\n // Lock up the current balance for darknode reward allocation\n unclaimedRewards[_token] = store.availableBalance(_token);\n previousCycleRewardShare[_token] = unclaimedRewards[_token].div(shareCount);\n }\n }\n\n /// @notice Deregisters a token, removing it from the list of\n /// registeredTokens.\n ///\n /// @param _token The address of the token to deregister.\n function _deregisterToken(address _token) private {\n address lastToken = registeredTokens[registeredTokens.length.sub(1)];\n uint256 deletedTokenIndex = registeredTokenIndex[_token].sub(1);\n // Move the last token to _token's position and update it's index\n registeredTokens[deletedTokenIndex] = lastToken;\n registeredTokenIndex[lastToken] = registeredTokenIndex[_token];\n // Decreasing the length will clean up the storage for us\n // So we don't need to manually delete the element\n registeredTokens.length = registeredTokens.length.sub(1);\n registeredTokenIndex[_token] = 0;\n\n emit LogTokenDeregistered(_token);\n }\n\n /// @notice Updates the list of registeredTokens adding tokens that are to be registered.\n /// The list of tokens that are pending registration are emptied afterwards.\n function _updateTokenList() private {\n // Register tokens\n uint arrayLength = pendingTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n address token = pendingTokens[i];\n registeredTokens.push(token);\n registeredTokenIndex[token] = registeredTokens.length;\n emit LogTokenRegistered(token);\n }\n pendingTokens.length = 0;\n }\n\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "exportedSymbols": { - "DarknodePayment": [ - 959 - ] - }, - "id": 960, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 13, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7471, - "src": "25:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 14, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7360, - "src": "89:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 15, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7868, - "src": "149:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 16, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 4636, - "src": "214:51:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 17, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 2391, - "src": "266:50:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "file": "./DarknodePaymentStore.sol", - "id": 18, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 1288, - "src": "317:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 20, - "nodeType": "InheritanceSpecifier", - "src": "486:7:1" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePayment is responsible for paying off darknodes for their\n computation.", - "fullyImplemented": true, - "id": 959, - "linearizedBaseContracts": [ - 959, - 7470 - ], - "name": "DarknodePayment", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 23, - "libraryName": { - "contractScope": null, - "id": 21, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "506:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "500:27:1", - "typeName": { - "id": 22, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 26, - "libraryName": { - "contractScope": null, - "id": 24, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4635, - "src": "538:24:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4635", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "532:41:1", - "typeName": { - "contractScope": null, - "id": 25, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "567:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 28, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "579:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 27, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "695:77:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:42:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 33, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "779:40:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 32, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "779:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 35, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "967:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 34, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "967:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 37, - "name": "blacklister", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1102:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "currentCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1135:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 38, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 41, - "name": "previousCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1168:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1168:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "shareCount", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1266:25:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "pendingTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1501:30:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 45, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1501:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "registeredTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1650:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 48, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1650:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "registeredTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1793:55:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1793:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 51, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 57, - "name": "unclaimedRewards", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2012:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 56, - "keyType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2012:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 55, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 61, - "name": "previousCycleRewardShare", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2183:59:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 60, - "keyType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2183:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 59, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 63, - "name": "cycleStartTime", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2306:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 62, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 65, - "name": "cycleDuration", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2415:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 67, - "name": "cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2523:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 66, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2523:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 73, - "name": "rewardClaimed", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2727:65:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "typeName": { - "id": 72, - "keyType": { - "id": 68, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2735:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2727:44:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "valueType": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2746:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 70, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is blacklisted from receiving rewards\n @param _darknode The address of the darknode which was blacklisted\n @param _time The time at which the darknode was blacklisted", - "id": 79, - "name": "LogDarknodeBlacklisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3049:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3076:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3048:42:1" - }, - "src": "3020:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is whitelisted to receive rewards\n @param _darknode The address of the darknode which was whitelisted\n @param _time The time at which the darknode was whitelisted", - "id": 85, - "name": "LogDarknodeWhitelisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3343:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 83, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3370:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3342:42:1" - }, - "src": "3314:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode claims their share of reward\n @param _darknode The darknode which claimed\n @param _cycle The cycle that the darknode claimed for", - "id": 91, - "name": "LogDarknodeClaim", - "nodeType": "EventDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3597:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 86, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3597:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "indexed": false, - "name": "_cycle", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3624:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:43:1" - }, - "src": "3574:66:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when someone pays the DarknodePayment contract\n @param _payer The darknode which claimed\n @param _amount The cycle that the darknode claimed for\n @param _token The address of the token that was transferred", - "id": 99, - "name": "LogPaymentReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "indexed": true, - "name": "_payer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3922:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3946:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 94, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3963:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 96, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3963:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:57:1" - }, - "src": "3897:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode calls withdraw\n @param _payee The address of the darknode which withdrew\n @param _value The amount of DAI withdrawn\n @param _token The address of the token that was withdrawn", - "id": 107, - "name": "LogDarknodeWithdrew", - "nodeType": "EventDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "indexed": true, - "name": "_payee", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4247:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4247:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4287:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:56:1" - }, - "src": "4221:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new cycle happens\n @param _newCycle The new, current cycle\n @param _lastCycle The previous cycle\n @param _cycleTimeout The earliest a new cycle can be called", - "id": 115, - "name": "LogNewCycle", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "indexed": false, - "name": "_newCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4537:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4537:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "indexed": false, - "name": "_lastCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4556:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4556:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4576:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4576:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4536:62:1" - }, - "src": "4519:80:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the cycle duration changes\n @param _newDuration The new duration\n @param _oldDuration The old duration", - "id": 121, - "name": "LogCycleDurationChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "indexed": false, - "name": "_newDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4781:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "indexed": false, - "name": "_oldDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4803:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4780:44:1" - }, - "src": "4751:74:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the Blacklister contract changes\n @param _newBlacklister The new Blacklister\n @param _oldBlacklister The old Blacklister", - "id": 127, - "name": "LogBlacklisterChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "indexed": false, - "name": "_newBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5023:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "indexed": false, - "name": "_oldBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5048:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5048:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5022:50:1" - }, - "src": "4995:78:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new token is registered\n @param _token The token that was registered", - "id": 131, - "name": "LogTokenRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "5211:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5211:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5210:16:1" - }, - "src": "5186:41:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a token is deregistered\n @param _token The token that was deregistered", - "id": 135, - "name": "LogTokenDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "5367:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5366:16:1" - }, - "src": "5340:43:1" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "5508:107:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 142, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "5556:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 140, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "5526:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 2178, - "src": "5526:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f6465206973206e6f742072656769737465726564", - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:28:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - }, - "value": "darknode is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - } - ], - "id": 139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5518:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "5518:79:1" - }, - { - "id": 147, - "nodeType": "PlaceholderStatement", - "src": "5607:1:1" - } - ] - }, - "documentation": "@notice Restrict a function registered dark nodes to call a function.", - "id": 149, - "name": "onlyDarknode", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 137, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "5489:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5488:19:1" - }, - "src": "5467:148:1", - "visibility": "internal" - }, - { - "body": { - "id": 160, - "nodeType": "Block", - "src": "5701:81:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 152, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "5719:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5734:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5719:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420426c61636b6c6973746572", - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5746:17:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - }, - "value": "not Blacklister" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - } - ], - "id": 151, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5711:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5711:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 158, - "nodeType": "ExpressionStatement", - "src": "5711:53:1" - }, - { - "id": 159, - "nodeType": "PlaceholderStatement", - "src": "5774:1:1" - } - ] - }, - "documentation": "@notice Restrict a function the blacklister.", - "id": 161, - "name": "onlyBlacklister", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 150, - "nodeType": "ParameterList", - "parameters": [], - "src": "5698:2:1" - }, - "src": "5674:108:1", - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "5908:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5926:31:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5947:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 166, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "5927:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isBlacklisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1027, - "src": "5927:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5927:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:25:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "5918:67:1" - }, - { - "id": 174, - "nodeType": "PlaceholderStatement", - "src": "5995:1:1" - } - ] - }, - "documentation": "@notice Restrict a function darknodes which haven't been blacklisted", - "id": 176, - "name": "notBlacklisted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "5889:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5889:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5888:19:1" - }, - "src": "5865:138:1", - "visibility": "internal" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "6655:418:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 187, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "6665:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 188, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "6675:8:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6665:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "6665:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 191, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "6693:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 192, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6712:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "6693:36:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "6693:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 195, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "6739:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 196, - "name": "_darknodePaymentStore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "6747:21:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "src": "6739:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 198, - "nodeType": "ExpressionStatement", - "src": "6739:29:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 199, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "6778:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 200, - "name": "_cycleDurationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6794:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6778:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "6778:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 203, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "6869:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 204, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6869:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "6869:24:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 208, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "6939:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6939:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 212, - "nodeType": "ExpressionStatement", - "src": "6939:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 213, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "6976:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 214, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "6993:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6993:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6976:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "6976:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7018:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 221, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "7052:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 219, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "7033:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "7033:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7033:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7018:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 224, - "nodeType": "ExpressionStatement", - "src": "7018:48:1" - } - ] - }, - "documentation": "@notice The contract constructor. Starts the current cycle using the\n time of deploy.\n\n /// @param _VERSION A string defining the contract version.\n @param _darknodeRegistry The address of the DarknodeRegistry contract\n @param _darknodePaymentStore The address of the DarknodePaymentStore\n contract\n @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds", - "id": 226, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6484:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 177, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6484:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 180, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6516:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 179, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "6516:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "name": "_darknodePaymentStore", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6560:42:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 181, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "6560:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "name": "_cycleDurationSeconds", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6612:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6474:173:1" - }, - "returnParameters": { - "id": 186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6655:0:1" - }, - "scope": 959, - "src": "6463:610:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "7347:416:1", - "statements": [ - { - "assignments": [ - 234 - ], - "declarations": [ - { - "constant": false, - "id": 234, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7357:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7357:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 237, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7423:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 235, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "7389:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDarknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1934, - "src": "7389:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7389:44:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7357:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7451:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7468:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7451:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206461726b6e6f6465206f776e6572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - }, - "value": "invalid darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "7443:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7443:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "7443:64:1" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7518:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 253, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7558:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 251, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7535:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "7535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7535:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7518:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7603:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7594:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7468696e6720746f207769746864726177", - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7606:21:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - }, - "value": "nothing to withdraw" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - } - ], - "id": 257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "7586:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7586:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 263, - "nodeType": "ExpressionStatement", - "src": "7586:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 267, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7654:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 268, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7665:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7673:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7681:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 264, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7639:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1286, - "src": "7639:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,address,uint256,address payable) external" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7639:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "7639:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 274, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7730:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7741:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7749:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 273, - "name": "LogDarknodeWithdrew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7710:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7710:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 278, - "nodeType": "EmitStatement", - "src": "7705:51:1" - } - ] - }, - "documentation": "@notice Transfers the funds allocated to the darknode to the darknode\n owner.\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer", - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7305:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7305:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7324:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7324:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7304:35:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "7347:0:1" - }, - "scope": 959, - "src": "7287:476:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 308, - "nodeType": "Block", - "src": "7851:114:1", - "statements": [ - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "7903:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 300, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7926:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7937:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 303, - "indexExpression": { - "argumentTypes": null, - "id": 302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7945:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7917:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7917:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 305, - "nodeType": "ExpressionStatement", - "src": "7917:31:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 292, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 293, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7882:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7878:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 307, - "initializationExpression": { - "assignments": [ - 289 - ], - "declarations": [ - { - "constant": false, - "id": 289, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "7866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 291, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7898:3:1", - "subExpression": { - "argumentTypes": null, - "id": 296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7898:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "7898:3:1" - }, - "nodeType": "ForStatement", - "src": "7861:98:1" - } - ] - }, - "documentation": null, - "id": 309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawMultiple", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7795:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7795:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7814:26:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7814:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 284, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7814:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7794:47:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [], - "src": "7851:0:1" - }, - "scope": 959, - "src": "7769:196:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 328, - "nodeType": "Block", - "src": "8066:117:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 316, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "8100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8084:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8076:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 319, - "nodeType": "ExpressionStatement", - "src": "8076:34:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 321, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "8144:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8144:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 323, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "8156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8156:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 325, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "8167:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 320, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8125:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 327, - "nodeType": "EmitStatement", - "src": "8120:56:1" - } - ] - }, - "documentation": "@notice Forward all payments to the DarknodePaymentStore.", - "id": 329, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [], - "src": "8046:2:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "8066:0:1" - }, - "scope": 959, - "src": "8037:146:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 346, - "nodeType": "Block", - "src": "8379:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 341, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "8431:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 343, - "indexExpression": { - "argumentTypes": null, - "id": 342, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8448:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8431:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 338, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 336, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8396:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "8396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "8396:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 335, - "id": 345, - "nodeType": "Return", - "src": "8389:67:1" - } - ] - }, - "documentation": "@notice The current balance of the contract available as reward for the\n current cycle", - "id": 347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCycleRewardPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 331, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8331:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8330:16:1" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8370:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8369:9:1" - }, - "scope": 959, - "src": "8299:164:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "8564:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 349, - "src": "8604:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 359, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 351, - "src": "8617:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 356, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "8581:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8581:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 355, - "id": 361, - "nodeType": "Return", - "src": "8574:50:1" - } - ] - }, - "documentation": null, - "id": 363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "darknodeBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 349, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8495:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8495:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 351, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8516:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8516:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8494:37:1" - }, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8555:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8555:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8554:9:1" - }, - "scope": 959, - "src": "8469:162:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 444, - "nodeType": "Block", - "src": "8730:832:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 370, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "8755:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8748:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f74206379636c65207965743a20746f6f206561726c79", - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8769:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - }, - "value": "cannot cycle yet: too early" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - } - ], - "id": 368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "8740:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:59:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 374, - "nodeType": "ExpressionStatement", - "src": "8740:59:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8817:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 378, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "8833:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8817:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f206e657720626c6f636b", - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8847:14:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - }, - "value": "no new block" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - } - ], - "id": 375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "8809:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8809:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8809:53:1" - }, - { - "assignments": [ - 384 - ], - "declarations": [ - { - "constant": false, - "id": 384, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "8921:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 387, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 385, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8940:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8921:42:1" - }, - { - "body": { - "id": 404, - "nodeType": "Block", - "src": "9012:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 399, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "9043:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 401, - "indexExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9060:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9043:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 398, - "name": "_snapshotBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "9026:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9026:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "9026:37:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "8990:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 393, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "8994:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8990:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 405, - "initializationExpression": { - "assignments": [ - 389 - ], - "declarations": [ - { - "constant": false, - "id": 389, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "8978:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8978:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9007:3:1", - "subExpression": { - "argumentTypes": null, - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9007:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "9007:3:1" - }, - "nodeType": "ForStatement", - "src": "8973:101:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 406, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9113:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 407, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9129:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9113:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "9113:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 410, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9151:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 411, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "9166:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9166:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9151:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "9151:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 415, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9188:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 416, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "9205:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9205:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9188:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "nodeType": "ExpressionStatement", - "src": "9188:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 420, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9230:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 423, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9245:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "9245:18:1", - "typeDescriptions": { - "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": "9245:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9230:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9230:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "9337:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 428, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "9350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelistLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 981, - "src": "9350:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9350:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9337:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "9337:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 433, - "name": "_updateTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "9438:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9438:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9438:18:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9484:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9498:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 439, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9513:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 436, - "name": "LogNewCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "9472:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 441, - "nodeType": "EmitStatement", - "src": "9467:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 442, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9543:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 367, - "id": 443, - "nodeType": "Return", - "src": "9536:19:1" - } - ] - }, - "documentation": "@notice Changes the current cycle.", - "id": 445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeCycle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 364, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:2:1" - }, - "returnParameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "8721:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8720:9:1" - }, - "scope": 959, - "src": "8680:882:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 511, - "nodeType": "Block", - "src": "9839:540:1", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 511, - "src": "9849:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9849:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 454, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9849:21:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 455, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "9884:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 456, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "9894:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9884:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 502, - "nodeType": "Block", - "src": "10078:227:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10113:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10100:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "756e6578706563746564206574686572207472616e73666572", - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10116:27:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - }, - "value": "unexpected ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "10092:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10092:52:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 487, - "nodeType": "ExpressionStatement", - "src": "10092:52:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 488, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10204:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10259:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10259:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10271:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 498, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "10287:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 489, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7867, - "src": "10220:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7867_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFromWithFees", - "nodeType": "MemberAccess", - "referencedDeclaration": 4459, - "src": "10220:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8127_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$bound_to$_t_contract$_IERC20_$8127_$", - "typeString": "function (contract IERC20,address,address,uint256) returns (uint256)" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:74:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10204:90:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "10204:90:1" - } - ] - }, - "id": 503, - "nodeType": "IfStatement", - "src": "9880:425:1", - "trueBody": { - "id": 479, - "nodeType": "Block", - "src": "9904:168:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 459, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "9926:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "9936:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9936:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9926:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d69736d617463686564206465706f7369742076616c7565", - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9947:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - }, - "value": "mismatched deposit value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - } - ], - "id": 458, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "9918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9918:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "9918:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 466, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "9988:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10004:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10004:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9988:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "9988:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10051:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10051:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10027:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10027:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "10027:34:1" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 505, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10338:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10338:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10350:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10365:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 504, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "10319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10319:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "EmitStatement", - "src": "10314:58:1" - } - ] - }, - "documentation": "@notice Deposits token into the contract to be paid to the Darknodes\n\n /// @param _value The amount of token deposit in the token's smallest unit.\n @param _token The token address", - "id": 512, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9790:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9806:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9806:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9789:32:1" - }, - "returnParameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [], - "src": "9839:0:1" - }, - "scope": 959, - "src": "9773:606:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "10854:537:1", - "statements": [ - { - "assignments": [ - 524 - ], - "declarations": [ - { - "constant": false, - "id": 524, - "name": "whitelistedTime", - "nodeType": "VariableDeclaration", - "scope": 563, - "src": "10864:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 529, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 527, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10914:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 525, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10890:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 999, - "src": "10890:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10890:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10864:60:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "10994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10994:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 546, - "nodeType": "IfStatement", - "src": "10990:154:1", - "trueBody": { - "id": 545, - "nodeType": "Block", - "src": "11016:128:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11046:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 533, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "whitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1161, - "src": "11030:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11030:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "11030:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 540, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11098:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 541, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "11109:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 539, - "name": "LogDarknodeWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "11075:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11075:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 543, - "nodeType": "EmitStatement", - "src": "11070:43:1" - }, - { - "expression": null, - "functionReturnParameters": 522, - "id": 544, - "nodeType": "Return", - "src": "11127:7:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 548, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11162:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 549, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "11180:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11162:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420636c61696d20666f722074686973206379636c65", - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11196:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - }, - "value": "cannot claim for this cycle" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - } - ], - "id": 547, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "11154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11154:72:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11154:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 555, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11317:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 554, - "name": "_claimDarknodeReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "11296:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11296:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 557, - "nodeType": "ExpressionStatement", - "src": "11296:31:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 559, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11359:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 560, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "11370:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 558, - "name": "LogDarknodeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11342:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 562, - "nodeType": "EmitStatement", - "src": "11337:47:1" - } - ] - }, - "documentation": "@notice Claims the rewards allocated to the darknode last cycle and\n increments the darknode balances. Whitelists the darknode if it\n hasn't already been whitelisted. If a darknode does not call\n claim() then the rewards for the previous cycle is lost.\n\n /// @param _darknode The address of the darknode to claim", - "id": 564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10817:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 518, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "10804:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10804:23:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 520, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10843:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 521, - "modifierName": { - "argumentTypes": null, - "id": 519, - "name": "notBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "10828:14:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10828:25:1" - } - ], - "name": "claim", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "10776:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10776:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10775:19:1" - }, - "returnParameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10854:0:1" - }, - "scope": 959, - "src": "10761:630:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 585, - "nodeType": "Block", - "src": "11627:96:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 577, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11653:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 574, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11637:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "blacklist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1127, - "src": "11637:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11637:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "11637:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 581, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11701:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 582, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "11712:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 580, - "name": "LogDarknodeBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "11678:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11678:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 584, - "nodeType": "EmitStatement", - "src": "11673:43:1" - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in rewards.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 569, - "modifierName": { - "argumentTypes": null, - "id": 568, - "name": "onlyBlacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11587:15:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11587:15:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11616:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 572, - "modifierName": { - "argumentTypes": null, - "id": 570, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "11603:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11603:23:1" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "11559:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11559:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11558:19:1" - }, - "returnParameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "11627:0:1" - }, - "scope": 959, - "src": "11540:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "11961:318:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 594, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "11979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 596, - "indexExpression": { - "argumentTypes": null, - "id": 595, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12000:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11979:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12011:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11979:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12014:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "11971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11971:70:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "11971:70:1" - }, - { - "assignments": [ - 603 - ], - "declarations": [ - { - "constant": false, - "id": 603, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 634, - "src": "12051:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 606, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 604, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12070:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12070:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12051:39:1" - }, - { - "body": { - "id": 626, - "nodeType": "Block", - "src": "12139:98:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 618, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12161:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 620, - "indexExpression": { - "argumentTypes": null, - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12175:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12161:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 621, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12181:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12161:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e", - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - }, - "value": "token already pending registration" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - } - ], - "id": 617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12153:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12153:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 625, - "nodeType": "ExpressionStatement", - "src": "12153:73:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 611, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12117:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 612, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "12121:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12117:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 627, - "initializationExpression": { - "assignments": [ - 608 - ], - "declarations": [ - { - "constant": false, - "id": 608, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 627, - "src": "12105:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 607, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12105:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 610, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12114:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12105:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12134:3:1", - "subExpression": { - "argumentTypes": null, - "id": 614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12134:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 616, - "nodeType": "ExpressionStatement", - "src": "12134:3:1" - }, - "nodeType": "ForStatement", - "src": "12100:137:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12265:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12246:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12246:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12246:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "12246:26:1" - } - ] - }, - "documentation": "@notice Adds tokens to be payable. Registration is pending until next\n cycle.\n\n /// @param _token The address of the token to be registered.", - "id": 635, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 591, - "modifierName": { - "argumentTypes": null, - "id": 590, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "11951:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11951:9:1" - } - ], - "name": "registerToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "11926:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11926:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11925:16:1" - }, - "returnParameters": { - "id": 592, - "nodeType": "ParameterList", - "parameters": [], - "src": "11961:0:1" - }, - "scope": 959, - "src": "11903:376:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 655, - "nodeType": "Block", - "src": "12547:116:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 643, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12565:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 645, - "indexExpression": { - "argumentTypes": null, - "id": 644, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12565:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12596:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12565:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12599:22:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12557:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12557:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "ExpressionStatement", - "src": "12557:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 651, - "name": "_deregisterToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "12632:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12632:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 654, - "nodeType": "ExpressionStatement", - "src": "12632:24:1" - } - ] - }, - "documentation": "@notice Removes a token from the list of supported tokens.\n Deregistration is pending until next cycle.\n\n /// @param _token The address of the token to be deregistered.", - "id": 656, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 640, - "modifierName": { - "argumentTypes": null, - "id": 639, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "12537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12537:9:1" - } - ], - "name": "deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "12512:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12512:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12511:16:1" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [], - "src": "12547:0:1" - }, - "scope": 959, - "src": "12487:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 681, - "nodeType": "Block", - "src": "12855:158:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 664, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12873:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12890:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12873:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420636f6e74726163742061646472657373", - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12894:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - }, - "value": "invalid contract address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12865:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12865:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 671, - "nodeType": "ExpressionStatement", - "src": "12865:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 673, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 674, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12965:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 672, - "name": "LogBlacklisterChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12936:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12936:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 676, - "nodeType": "EmitStatement", - "src": "12931:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 677, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12987:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 678, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13001:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12987:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 680, - "nodeType": "ExpressionStatement", - "src": "12987:19:1" - } - ] - }, - "documentation": "@notice Updates the Blacklister contract address.\n\n /// @param _addr The new Blacklister contract address.", - "id": 682, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 661, - "modifierName": { - "argumentTypes": null, - "id": 660, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "12845:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12845:9:1" - } - ], - "name": "updateBlacklister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "12821:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12821:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12820:15:1" - }, - "returnParameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [], - "src": "12855:0:1" - }, - "scope": 959, - "src": "12794:219:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 702, - "nodeType": "Block", - "src": "13277:160:1", - "statements": [ - { - "assignments": [ - 690 - ], - "declarations": [ - { - "constant": false, - "id": 690, - "name": "oldDuration", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "13287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 692, - "initialValue": { - "argumentTypes": null, - "id": 691, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13309:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13287:35:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 693, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13332:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 694, - "name": "_durationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "13348:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13332:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 696, - "nodeType": "ExpressionStatement", - "src": "13332:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 698, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13403:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 699, - "name": "oldDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "13418:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 697, - "name": "LogCycleDurationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "13379:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13379:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 701, - "nodeType": "EmitStatement", - "src": "13374:56:1" - } - ] - }, - "documentation": "@notice Updates cycle duration\n\n /// @param _durationSeconds The amount of time (in seconds) that should have\n passed before a new cycle can be called.", - "id": 703, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 687, - "modifierName": { - "argumentTypes": null, - "id": 686, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "13267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13267:9:1" - } - ], - "name": "updateCycleDuration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 684, - "name": "_durationSeconds", - "nodeType": "VariableDeclaration", - "scope": 703, - "src": "13232:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13231:26:1" - }, - "returnParameters": { - "id": 688, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:0:1" - }, - "scope": 959, - "src": "13203:234:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "13709:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 713, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "13743:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 710, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "13719:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "13719:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13719:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "13719:34:1" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodePaymentStore.\n\n /// @param _newOwner The address to transfer the ownership to.", - "id": 717, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 708, - "modifierName": { - "argumentTypes": null, - "id": 707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "13699:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13699:9:1" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 705, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "13671:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13670:19:1" - }, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "13709:0:1" - }, - "scope": 959, - "src": "13639:121:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "14035:39:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 722, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14045:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "14045:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14045:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "14045:22:1" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another DarknodePaymentStore.", - "id": 728, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 720, - "modifierName": { - "argumentTypes": null, - "id": 719, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "14025:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14025:9:1" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 718, - "nodeType": "ParameterList", - "parameters": [], - "src": "14013:2:1" - }, - "returnParameters": { - "id": 721, - "nodeType": "ParameterList", - "parameters": [], - "src": "14035:0:1" - }, - "scope": 959, - "src": "13985:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "14415:655:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14433:40:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 734, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14434:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 736, - "indexExpression": { - "argumentTypes": null, - "id": 735, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14448:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 738, - "indexExpression": { - "argumentTypes": null, - "id": 737, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14459:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "72657761726420616c726561647920636c61696d6564", - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14475:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - }, - "value": "reward already claimed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - } - ], - "id": 733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "14425:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14425:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 742, - "nodeType": "ExpressionStatement", - "src": "14425:75:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 743, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 746, - "indexExpression": { - "argumentTypes": null, - "id": 744, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14524:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14510:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 747, - "indexExpression": { - "argumentTypes": null, - "id": 745, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14510:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14510:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "nodeType": "ExpressionStatement", - "src": "14510:46:1" - }, - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "14566:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 755, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 753, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14585:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14585:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14566:42:1" - }, - { - "body": { - "id": 802, - "nodeType": "Block", - "src": "14657:407:1", - "statements": [ - { - "assignments": [ - 767 - ], - "declarations": [ - { - "constant": false, - "id": 767, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "14671:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 768, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14687:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 770, - "indexExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14704:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14671:35:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14799:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14824:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14799:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14799:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 801, - "nodeType": "IfStatement", - "src": "14795:259:1", - "trueBody": { - "id": 800, - "nodeType": "Block", - "src": "14836:218:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 777, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14854:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 779, - "indexExpression": { - "argumentTypes": null, - "id": 778, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14871:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14854:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 784, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14908:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 786, - "indexExpression": { - "argumentTypes": null, - "id": 785, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14933:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 780, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14880:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 782, - "indexExpression": { - "argumentTypes": null, - "id": 781, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14897:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14880:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "14880:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14880:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14854:86:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "14854:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15000:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15007:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15032:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15007:31:1", - "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": 790, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "incrementDarknodeBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1215, - "src": "14958:30:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14958:81:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "14958:81:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 760, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14635:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 761, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "14639:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14635:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 803, - "initializationExpression": { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 803, - "src": "14623:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14623:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 759, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14632:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14623:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14652:3:1", - "subExpression": { - "argumentTypes": null, - "id": 763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14652:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 765, - "nodeType": "ExpressionStatement", - "src": "14652:3:1" - }, - "nodeType": "ForStatement", - "src": "14618:446:1" - } - ] - }, - "documentation": "@notice Claims the darknode reward for all registered tokens into\n darknodeBalances in the DarknodePaymentStore.\n Rewards can only be claimed once per cycle.\n\n /// @param _darknode The address to the darknode to claim rewards for", - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimDarknodeReward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 805, - "src": "14388:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14388:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14387:19:1" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "14415:0:1" - }, - "scope": 959, - "src": "14358:712:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "15295:391:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 810, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15309:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15323:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15309:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 846, - "nodeType": "Block", - "src": "15435:245:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 826, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15523:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 828, - "indexExpression": { - "argumentTypes": null, - "id": 827, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15523:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15573:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "15550:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "15550:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15523:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "15523:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 835, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15594:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 837, - "indexExpression": { - "argumentTypes": null, - "id": 836, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15594:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 842, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15658:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 838, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15629:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 840, - "indexExpression": { - "argumentTypes": null, - "id": 839, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15646:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "15629:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:40:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15594:75:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "15594:75:1" - } - ] - }, - "id": 847, - "nodeType": "IfStatement", - "src": "15305:375:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "15326:103:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 813, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15340:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 815, - "indexExpression": { - "argumentTypes": null, - "id": 814, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15357:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15340:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15367:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15340:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "15340:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 819, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15382:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 821, - "indexExpression": { - "argumentTypes": null, - "id": 820, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15382:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15417:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15382:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "15382:36:1" - } - ] - } - } - ] - }, - "documentation": "@notice Snapshots the current balance of the tokens, for all registered\n tokens.\n\n /// @param _token The address the token to snapshot.", - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_snapshotBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "15271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15271:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15270:16:1" - }, - "returnParameters": { - "id": 809, - "nodeType": "ParameterList", - "parameters": [], - "src": "15295:0:1" - }, - "scope": 959, - "src": "15245:441:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 907, - "nodeType": "Block", - "src": "15912:638:1", - "statements": [ - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "lastToken", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "15922:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 856, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15942:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 862, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15987:1:1", - "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": 857, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15959:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15959:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "15959:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15959:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15942:48:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15922:68:1" - }, - { - "assignments": [ - 865 - ], - "declarations": [ - { - "constant": false, - "id": 865, - "name": "deletedTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "16000:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 864, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16000:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16061:1:1", - "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": 866, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16028:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 868, - "indexExpression": { - "argumentTypes": null, - "id": 867, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16049:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16028:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "16028:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16000:63:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 873, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16147:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 875, - "indexExpression": { - "argumentTypes": null, - "id": 874, - "name": "deletedTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "16164:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16147:35:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 876, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16147:47:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "16147:47:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 879, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16204:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 881, - "indexExpression": { - "argumentTypes": null, - "id": 880, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16204:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 882, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16238:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 884, - "indexExpression": { - "argumentTypes": null, - "id": 883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16238:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16204:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 886, - "nodeType": "ExpressionStatement", - "src": "16204:62:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 887, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16401:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 889, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16401:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16455:1:1", - "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": 890, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16427:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16427:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "16427:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16427:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16401:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 896, - "nodeType": "ExpressionStatement", - "src": "16401:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 897, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16467:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "id": 898, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16488:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16467:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16498:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16467:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "16467:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16536:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "LogTokenDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "16515:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16515:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 906, - "nodeType": "EmitStatement", - "src": "16510:33:1" - } - ] - }, - "documentation": "@notice Deregisters a token, removing it from the list of\n registeredTokens.\n\n /// @param _token The address of the token to deregister.", - "id": 908, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 851, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 908, - "src": "15888:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15888:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15887:16:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "15912:0:1" - }, - "scope": 959, - "src": "15862:688:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "16775:375:1", - "statements": [ - { - "assignments": [ - 912 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "16812:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16812:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 915, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 913, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16831:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16831:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16812:39:1" - }, - { - "body": { - "id": 949, - "nodeType": "Block", - "src": "16900:210:1", - "statements": [ - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "16914:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16914:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 931, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 928, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16930:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16944:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16930:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16914:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 935, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "16982:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 932, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16960:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16960:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ExpressionStatement", - "src": "16960:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 938, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "17002:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 940, - "indexExpression": { - "argumentTypes": null, - "id": 939, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17023:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17002:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 941, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "17032:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17032:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17002:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 944, - "nodeType": "ExpressionStatement", - "src": "17002:53:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 945, - "name": "LogTokenRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "17074:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17074:25:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 948, - "nodeType": "EmitStatement", - "src": "17069:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 921, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "16882:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16878:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 950, - "initializationExpression": { - "assignments": [ - 917 - ], - "declarations": [ - { - "constant": false, - "id": 917, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 950, - "src": "16866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 919, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16895:3:1", - "subExpression": { - "argumentTypes": null, - "id": 923, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16895:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "16895:3:1" - }, - "nodeType": "ForStatement", - "src": "16861:249:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 951, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "17119:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 953, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17119:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17142:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17119:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 956, - "nodeType": "ExpressionStatement", - "src": "17119:24:1" - } - ] - }, - "documentation": "@notice Updates the list of registeredTokens adding tokens that are to be registered.\n The list of tokens that are pending registration are emptied afterwards.", - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_updateTokenList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 909, - "nodeType": "ParameterList", - "parameters": [], - "src": "16764:2:1" - }, - "returnParameters": { - "id": 910, - "nodeType": "ParameterList", - "parameters": [], - "src": "16775:0:1" - }, - "scope": 959, - "src": "16739:411:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 960, - "src": "458:16695:1" - } - ], - "src": "0:17154:1" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "exportedSymbols": { - "DarknodePayment": [ - 959 - ] - }, - "id": 960, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 13, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7471, - "src": "25:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 14, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7360, - "src": "89:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 15, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7868, - "src": "149:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 16, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 4636, - "src": "214:51:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 17, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 2391, - "src": "266:50:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "file": "./DarknodePaymentStore.sol", - "id": 18, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 1288, - "src": "317:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 20, - "nodeType": "InheritanceSpecifier", - "src": "486:7:1" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePayment is responsible for paying off darknodes for their\n computation.", - "fullyImplemented": true, - "id": 959, - "linearizedBaseContracts": [ - 959, - 7470 - ], - "name": "DarknodePayment", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 23, - "libraryName": { - "contractScope": null, - "id": 21, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "506:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "500:27:1", - "typeName": { - "id": 22, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 26, - "libraryName": { - "contractScope": null, - "id": 24, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4635, - "src": "538:24:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4635", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "532:41:1", - "typeName": { - "contractScope": null, - "id": 25, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "567:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 28, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "579:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 27, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "695:77:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:42:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 33, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "779:40:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 32, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "779:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 35, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "967:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 34, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "967:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 37, - "name": "blacklister", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1102:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "currentCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1135:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 38, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 41, - "name": "previousCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1168:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1168:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "shareCount", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1266:25:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "pendingTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1501:30:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 45, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1501:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "registeredTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1650:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 48, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1650:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "registeredTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1793:55:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1793:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 51, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 57, - "name": "unclaimedRewards", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2012:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 56, - "keyType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2012:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 55, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 61, - "name": "previousCycleRewardShare", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2183:59:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 60, - "keyType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2183:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 59, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 63, - "name": "cycleStartTime", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2306:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 62, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 65, - "name": "cycleDuration", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2415:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 67, - "name": "cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2523:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 66, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2523:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 73, - "name": "rewardClaimed", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2727:65:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "typeName": { - "id": 72, - "keyType": { - "id": 68, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2735:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2727:44:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "valueType": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2746:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 70, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is blacklisted from receiving rewards\n @param _darknode The address of the darknode which was blacklisted\n @param _time The time at which the darknode was blacklisted", - "id": 79, - "name": "LogDarknodeBlacklisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3049:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3076:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3048:42:1" - }, - "src": "3020:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is whitelisted to receive rewards\n @param _darknode The address of the darknode which was whitelisted\n @param _time The time at which the darknode was whitelisted", - "id": 85, - "name": "LogDarknodeWhitelisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3343:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 83, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3370:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3342:42:1" - }, - "src": "3314:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode claims their share of reward\n @param _darknode The darknode which claimed\n @param _cycle The cycle that the darknode claimed for", - "id": 91, - "name": "LogDarknodeClaim", - "nodeType": "EventDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3597:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 86, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3597:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "indexed": false, - "name": "_cycle", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3624:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:43:1" - }, - "src": "3574:66:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when someone pays the DarknodePayment contract\n @param _payer The darknode which claimed\n @param _amount The cycle that the darknode claimed for\n @param _token The address of the token that was transferred", - "id": 99, - "name": "LogPaymentReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "indexed": true, - "name": "_payer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3922:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3946:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 94, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3963:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 96, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3963:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:57:1" - }, - "src": "3897:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode calls withdraw\n @param _payee The address of the darknode which withdrew\n @param _value The amount of DAI withdrawn\n @param _token The address of the token that was withdrawn", - "id": 107, - "name": "LogDarknodeWithdrew", - "nodeType": "EventDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "indexed": true, - "name": "_payee", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4247:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4247:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4287:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:56:1" - }, - "src": "4221:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new cycle happens\n @param _newCycle The new, current cycle\n @param _lastCycle The previous cycle\n @param _cycleTimeout The earliest a new cycle can be called", - "id": 115, - "name": "LogNewCycle", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "indexed": false, - "name": "_newCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4537:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4537:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "indexed": false, - "name": "_lastCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4556:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4556:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4576:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4576:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4536:62:1" - }, - "src": "4519:80:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the cycle duration changes\n @param _newDuration The new duration\n @param _oldDuration The old duration", - "id": 121, - "name": "LogCycleDurationChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "indexed": false, - "name": "_newDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4781:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "indexed": false, - "name": "_oldDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4803:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4780:44:1" - }, - "src": "4751:74:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the Blacklister contract changes\n @param _newBlacklister The new Blacklister\n @param _oldBlacklister The old Blacklister", - "id": 127, - "name": "LogBlacklisterChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "indexed": false, - "name": "_newBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5023:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "indexed": false, - "name": "_oldBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5048:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5048:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5022:50:1" - }, - "src": "4995:78:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new token is registered\n @param _token The token that was registered", - "id": 131, - "name": "LogTokenRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "5211:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5211:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5210:16:1" - }, - "src": "5186:41:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a token is deregistered\n @param _token The token that was deregistered", - "id": 135, - "name": "LogTokenDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "5367:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5366:16:1" - }, - "src": "5340:43:1" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "5508:107:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 142, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "5556:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 140, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "5526:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 2178, - "src": "5526:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f6465206973206e6f742072656769737465726564", - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:28:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - }, - "value": "darknode is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - } - ], - "id": 139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5518:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "5518:79:1" - }, - { - "id": 147, - "nodeType": "PlaceholderStatement", - "src": "5607:1:1" - } - ] - }, - "documentation": "@notice Restrict a function registered dark nodes to call a function.", - "id": 149, - "name": "onlyDarknode", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 137, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "5489:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5488:19:1" - }, - "src": "5467:148:1", - "visibility": "internal" - }, - { - "body": { - "id": 160, - "nodeType": "Block", - "src": "5701:81:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 152, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "5719:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5734:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5719:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420426c61636b6c6973746572", - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5746:17:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - }, - "value": "not Blacklister" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - } - ], - "id": 151, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5711:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5711:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 158, - "nodeType": "ExpressionStatement", - "src": "5711:53:1" - }, - { - "id": 159, - "nodeType": "PlaceholderStatement", - "src": "5774:1:1" - } - ] - }, - "documentation": "@notice Restrict a function the blacklister.", - "id": 161, - "name": "onlyBlacklister", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 150, - "nodeType": "ParameterList", - "parameters": [], - "src": "5698:2:1" - }, - "src": "5674:108:1", - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "5908:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5926:31:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5947:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 166, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "5927:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isBlacklisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1027, - "src": "5927:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5927:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:25:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "5918:67:1" - }, - { - "id": 174, - "nodeType": "PlaceholderStatement", - "src": "5995:1:1" - } - ] - }, - "documentation": "@notice Restrict a function darknodes which haven't been blacklisted", - "id": 176, - "name": "notBlacklisted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "5889:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5889:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5888:19:1" - }, - "src": "5865:138:1", - "visibility": "internal" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "6655:418:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 187, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "6665:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 188, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "6675:8:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6665:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "6665:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 191, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "6693:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 192, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6712:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "6693:36:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "6693:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 195, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "6739:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 196, - "name": "_darknodePaymentStore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "6747:21:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "src": "6739:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 198, - "nodeType": "ExpressionStatement", - "src": "6739:29:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 199, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "6778:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 200, - "name": "_cycleDurationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6794:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6778:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "6778:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 203, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "6869:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 204, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6869:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "6869:24:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 208, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "6939:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6939:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 212, - "nodeType": "ExpressionStatement", - "src": "6939:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 213, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "6976:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 214, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "6993:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6993:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6976:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "6976:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7018:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 221, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "7052:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 219, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "7033:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "7033:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7033:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7018:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 224, - "nodeType": "ExpressionStatement", - "src": "7018:48:1" - } - ] - }, - "documentation": "@notice The contract constructor. Starts the current cycle using the\n time of deploy.\n\n /// @param _VERSION A string defining the contract version.\n @param _darknodeRegistry The address of the DarknodeRegistry contract\n @param _darknodePaymentStore The address of the DarknodePaymentStore\n contract\n @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds", - "id": 226, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6484:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 177, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6484:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 180, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6516:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 179, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "6516:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "name": "_darknodePaymentStore", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6560:42:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 181, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "6560:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "name": "_cycleDurationSeconds", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6612:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6474:173:1" - }, - "returnParameters": { - "id": 186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6655:0:1" - }, - "scope": 959, - "src": "6463:610:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "7347:416:1", - "statements": [ - { - "assignments": [ - 234 - ], - "declarations": [ - { - "constant": false, - "id": 234, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7357:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7357:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 237, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7423:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 235, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "7389:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDarknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1934, - "src": "7389:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7389:44:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7357:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7451:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7468:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7451:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206461726b6e6f6465206f776e6572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - }, - "value": "invalid darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "7443:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7443:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "7443:64:1" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7518:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 253, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7558:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 251, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7535:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "7535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7535:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7518:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7603:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7594:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7468696e6720746f207769746864726177", - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7606:21:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - }, - "value": "nothing to withdraw" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - } - ], - "id": 257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "7586:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7586:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 263, - "nodeType": "ExpressionStatement", - "src": "7586:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 267, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7654:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 268, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7665:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7673:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7681:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 264, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7639:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1286, - "src": "7639:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,address,uint256,address payable) external" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7639:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "7639:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 274, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7730:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7741:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7749:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 273, - "name": "LogDarknodeWithdrew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7710:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7710:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 278, - "nodeType": "EmitStatement", - "src": "7705:51:1" - } - ] - }, - "documentation": "@notice Transfers the funds allocated to the darknode to the darknode\n owner.\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer", - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7305:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7305:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7324:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7324:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7304:35:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "7347:0:1" - }, - "scope": 959, - "src": "7287:476:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 308, - "nodeType": "Block", - "src": "7851:114:1", - "statements": [ - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "7903:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 300, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7926:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7937:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 303, - "indexExpression": { - "argumentTypes": null, - "id": 302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7945:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7917:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7917:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 305, - "nodeType": "ExpressionStatement", - "src": "7917:31:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 292, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 293, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7882:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7878:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 307, - "initializationExpression": { - "assignments": [ - 289 - ], - "declarations": [ - { - "constant": false, - "id": 289, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "7866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 291, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7898:3:1", - "subExpression": { - "argumentTypes": null, - "id": 296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7898:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "7898:3:1" - }, - "nodeType": "ForStatement", - "src": "7861:98:1" - } - ] - }, - "documentation": null, - "id": 309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawMultiple", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7795:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7795:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7814:26:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7814:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 284, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7814:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7794:47:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [], - "src": "7851:0:1" - }, - "scope": 959, - "src": "7769:196:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 328, - "nodeType": "Block", - "src": "8066:117:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 316, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "8100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8084:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8076:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 319, - "nodeType": "ExpressionStatement", - "src": "8076:34:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 321, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "8144:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8144:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 323, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "8156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8156:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 325, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "8167:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 320, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8125:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 327, - "nodeType": "EmitStatement", - "src": "8120:56:1" - } - ] - }, - "documentation": "@notice Forward all payments to the DarknodePaymentStore.", - "id": 329, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [], - "src": "8046:2:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "8066:0:1" - }, - "scope": 959, - "src": "8037:146:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 346, - "nodeType": "Block", - "src": "8379:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 341, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "8431:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 343, - "indexExpression": { - "argumentTypes": null, - "id": 342, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8448:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8431:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 338, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 336, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8396:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "8396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "8396:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 335, - "id": 345, - "nodeType": "Return", - "src": "8389:67:1" - } - ] - }, - "documentation": "@notice The current balance of the contract available as reward for the\n current cycle", - "id": 347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCycleRewardPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 331, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8331:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8330:16:1" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8370:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8369:9:1" - }, - "scope": 959, - "src": "8299:164:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "8564:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 349, - "src": "8604:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 359, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 351, - "src": "8617:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 356, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "8581:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8581:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 355, - "id": 361, - "nodeType": "Return", - "src": "8574:50:1" - } - ] - }, - "documentation": null, - "id": 363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "darknodeBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 349, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8495:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8495:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 351, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8516:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8516:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8494:37:1" - }, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8555:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8555:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8554:9:1" - }, - "scope": 959, - "src": "8469:162:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 444, - "nodeType": "Block", - "src": "8730:832:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 370, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "8755:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8748:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f74206379636c65207965743a20746f6f206561726c79", - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8769:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - }, - "value": "cannot cycle yet: too early" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - } - ], - "id": 368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "8740:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:59:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 374, - "nodeType": "ExpressionStatement", - "src": "8740:59:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8817:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 378, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "8833:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8817:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f206e657720626c6f636b", - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8847:14:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - }, - "value": "no new block" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - } - ], - "id": 375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "8809:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8809:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8809:53:1" - }, - { - "assignments": [ - 384 - ], - "declarations": [ - { - "constant": false, - "id": 384, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "8921:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 387, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 385, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8940:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8921:42:1" - }, - { - "body": { - "id": 404, - "nodeType": "Block", - "src": "9012:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 399, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "9043:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 401, - "indexExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9060:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9043:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 398, - "name": "_snapshotBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "9026:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9026:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "9026:37:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "8990:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 393, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "8994:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8990:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 405, - "initializationExpression": { - "assignments": [ - 389 - ], - "declarations": [ - { - "constant": false, - "id": 389, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "8978:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8978:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9007:3:1", - "subExpression": { - "argumentTypes": null, - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9007:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "9007:3:1" - }, - "nodeType": "ForStatement", - "src": "8973:101:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 406, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9113:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 407, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9129:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9113:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "9113:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 410, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9151:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 411, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "9166:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9166:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9151:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "9151:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 415, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9188:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 416, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "9205:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9205:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9188:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "nodeType": "ExpressionStatement", - "src": "9188:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 420, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9230:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 423, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9245:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "9245:18:1", - "typeDescriptions": { - "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": "9245:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9230:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9230:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "9337:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 428, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "9350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelistLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 981, - "src": "9350:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9350:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9337:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "9337:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 433, - "name": "_updateTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "9438:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9438:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9438:18:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9484:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9498:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 439, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9513:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 436, - "name": "LogNewCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "9472:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 441, - "nodeType": "EmitStatement", - "src": "9467:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 442, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9543:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 367, - "id": 443, - "nodeType": "Return", - "src": "9536:19:1" - } - ] - }, - "documentation": "@notice Changes the current cycle.", - "id": 445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeCycle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 364, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:2:1" - }, - "returnParameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "8721:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8720:9:1" - }, - "scope": 959, - "src": "8680:882:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 511, - "nodeType": "Block", - "src": "9839:540:1", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 511, - "src": "9849:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9849:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 454, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9849:21:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 455, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "9884:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 456, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "9894:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9884:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 502, - "nodeType": "Block", - "src": "10078:227:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10113:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10100:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "756e6578706563746564206574686572207472616e73666572", - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10116:27:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - }, - "value": "unexpected ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "10092:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10092:52:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 487, - "nodeType": "ExpressionStatement", - "src": "10092:52:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 488, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10204:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10259:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10259:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10271:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 498, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "10287:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 489, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7867, - "src": "10220:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7867_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFromWithFees", - "nodeType": "MemberAccess", - "referencedDeclaration": 4459, - "src": "10220:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8127_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$bound_to$_t_contract$_IERC20_$8127_$", - "typeString": "function (contract IERC20,address,address,uint256) returns (uint256)" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:74:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10204:90:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "10204:90:1" - } - ] - }, - "id": 503, - "nodeType": "IfStatement", - "src": "9880:425:1", - "trueBody": { - "id": 479, - "nodeType": "Block", - "src": "9904:168:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 459, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "9926:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "9936:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9936:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9926:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d69736d617463686564206465706f7369742076616c7565", - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9947:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - }, - "value": "mismatched deposit value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - } - ], - "id": 458, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "9918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9918:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "9918:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 466, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "9988:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10004:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10004:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9988:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "9988:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10051:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10051:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10027:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10027:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "10027:34:1" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 505, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "10338:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10338:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10350:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10365:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 504, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "10319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10319:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "EmitStatement", - "src": "10314:58:1" - } - ] - }, - "documentation": "@notice Deposits token into the contract to be paid to the Darknodes\n\n /// @param _value The amount of token deposit in the token's smallest unit.\n @param _token The token address", - "id": 512, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9790:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9806:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9806:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9789:32:1" - }, - "returnParameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [], - "src": "9839:0:1" - }, - "scope": 959, - "src": "9773:606:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "10854:537:1", - "statements": [ - { - "assignments": [ - 524 - ], - "declarations": [ - { - "constant": false, - "id": 524, - "name": "whitelistedTime", - "nodeType": "VariableDeclaration", - "scope": 563, - "src": "10864:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 529, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 527, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10914:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 525, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10890:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 999, - "src": "10890:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10890:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10864:60:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "10994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10994:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 546, - "nodeType": "IfStatement", - "src": "10990:154:1", - "trueBody": { - "id": 545, - "nodeType": "Block", - "src": "11016:128:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11046:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 533, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "whitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1161, - "src": "11030:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11030:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "11030:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 540, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11098:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 541, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "11109:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 539, - "name": "LogDarknodeWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "11075:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11075:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 543, - "nodeType": "EmitStatement", - "src": "11070:43:1" - }, - { - "expression": null, - "functionReturnParameters": 522, - "id": 544, - "nodeType": "Return", - "src": "11127:7:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 548, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11162:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 549, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "11180:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11162:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420636c61696d20666f722074686973206379636c65", - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11196:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - }, - "value": "cannot claim for this cycle" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - } - ], - "id": 547, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "11154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11154:72:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11154:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 555, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11317:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 554, - "name": "_claimDarknodeReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "11296:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11296:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 557, - "nodeType": "ExpressionStatement", - "src": "11296:31:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 559, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11359:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 560, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "11370:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 558, - "name": "LogDarknodeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11342:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 562, - "nodeType": "EmitStatement", - "src": "11337:47:1" - } - ] - }, - "documentation": "@notice Claims the rewards allocated to the darknode last cycle and\n increments the darknode balances. Whitelists the darknode if it\n hasn't already been whitelisted. If a darknode does not call\n claim() then the rewards for the previous cycle is lost.\n\n /// @param _darknode The address of the darknode to claim", - "id": 564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10817:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 518, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "10804:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10804:23:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 520, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10843:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 521, - "modifierName": { - "argumentTypes": null, - "id": 519, - "name": "notBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "10828:14:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10828:25:1" - } - ], - "name": "claim", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "10776:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10776:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10775:19:1" - }, - "returnParameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10854:0:1" - }, - "scope": 959, - "src": "10761:630:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 585, - "nodeType": "Block", - "src": "11627:96:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 577, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11653:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 574, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11637:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "blacklist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1127, - "src": "11637:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11637:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "11637:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 581, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11701:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 582, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "11712:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 580, - "name": "LogDarknodeBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "11678:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11678:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 584, - "nodeType": "EmitStatement", - "src": "11673:43:1" - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in rewards.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 569, - "modifierName": { - "argumentTypes": null, - "id": 568, - "name": "onlyBlacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11587:15:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11587:15:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11616:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 572, - "modifierName": { - "argumentTypes": null, - "id": 570, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "11603:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11603:23:1" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "11559:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11559:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11558:19:1" - }, - "returnParameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "11627:0:1" - }, - "scope": 959, - "src": "11540:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "11961:318:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 594, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "11979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 596, - "indexExpression": { - "argumentTypes": null, - "id": 595, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12000:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11979:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12011:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11979:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12014:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "11971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11971:70:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "11971:70:1" - }, - { - "assignments": [ - 603 - ], - "declarations": [ - { - "constant": false, - "id": 603, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 634, - "src": "12051:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 606, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 604, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12070:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12070:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12051:39:1" - }, - { - "body": { - "id": 626, - "nodeType": "Block", - "src": "12139:98:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 618, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12161:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 620, - "indexExpression": { - "argumentTypes": null, - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12175:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12161:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 621, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12181:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12161:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e", - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - }, - "value": "token already pending registration" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - } - ], - "id": 617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12153:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12153:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 625, - "nodeType": "ExpressionStatement", - "src": "12153:73:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 611, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12117:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 612, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "12121:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12117:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 627, - "initializationExpression": { - "assignments": [ - 608 - ], - "declarations": [ - { - "constant": false, - "id": 608, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 627, - "src": "12105:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 607, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12105:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 610, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12114:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12105:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12134:3:1", - "subExpression": { - "argumentTypes": null, - "id": 614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12134:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 616, - "nodeType": "ExpressionStatement", - "src": "12134:3:1" - }, - "nodeType": "ForStatement", - "src": "12100:137:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12265:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12246:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12246:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12246:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "12246:26:1" - } - ] - }, - "documentation": "@notice Adds tokens to be payable. Registration is pending until next\n cycle.\n\n /// @param _token The address of the token to be registered.", - "id": 635, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 591, - "modifierName": { - "argumentTypes": null, - "id": 590, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "11951:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11951:9:1" - } - ], - "name": "registerToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "11926:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11926:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11925:16:1" - }, - "returnParameters": { - "id": 592, - "nodeType": "ParameterList", - "parameters": [], - "src": "11961:0:1" - }, - "scope": 959, - "src": "11903:376:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 655, - "nodeType": "Block", - "src": "12547:116:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 643, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12565:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 645, - "indexExpression": { - "argumentTypes": null, - "id": 644, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12565:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12596:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12565:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12599:22:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12557:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12557:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "ExpressionStatement", - "src": "12557:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 651, - "name": "_deregisterToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "12632:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12632:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 654, - "nodeType": "ExpressionStatement", - "src": "12632:24:1" - } - ] - }, - "documentation": "@notice Removes a token from the list of supported tokens.\n Deregistration is pending until next cycle.\n\n /// @param _token The address of the token to be deregistered.", - "id": 656, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 640, - "modifierName": { - "argumentTypes": null, - "id": 639, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "12537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12537:9:1" - } - ], - "name": "deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "12512:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12512:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12511:16:1" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [], - "src": "12547:0:1" - }, - "scope": 959, - "src": "12487:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 681, - "nodeType": "Block", - "src": "12855:158:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 664, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12873:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12890:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12873:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420636f6e74726163742061646472657373", - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12894:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - }, - "value": "invalid contract address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12865:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12865:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 671, - "nodeType": "ExpressionStatement", - "src": "12865:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 673, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 674, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12965:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 672, - "name": "LogBlacklisterChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12936:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12936:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 676, - "nodeType": "EmitStatement", - "src": "12931:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 677, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12987:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 678, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13001:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12987:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 680, - "nodeType": "ExpressionStatement", - "src": "12987:19:1" - } - ] - }, - "documentation": "@notice Updates the Blacklister contract address.\n\n /// @param _addr The new Blacklister contract address.", - "id": 682, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 661, - "modifierName": { - "argumentTypes": null, - "id": 660, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "12845:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12845:9:1" - } - ], - "name": "updateBlacklister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "12821:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12821:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12820:15:1" - }, - "returnParameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [], - "src": "12855:0:1" - }, - "scope": 959, - "src": "12794:219:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 702, - "nodeType": "Block", - "src": "13277:160:1", - "statements": [ - { - "assignments": [ - 690 - ], - "declarations": [ - { - "constant": false, - "id": 690, - "name": "oldDuration", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "13287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 692, - "initialValue": { - "argumentTypes": null, - "id": 691, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13309:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13287:35:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 693, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13332:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 694, - "name": "_durationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "13348:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13332:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 696, - "nodeType": "ExpressionStatement", - "src": "13332:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 698, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13403:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 699, - "name": "oldDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "13418:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 697, - "name": "LogCycleDurationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "13379:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13379:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 701, - "nodeType": "EmitStatement", - "src": "13374:56:1" - } - ] - }, - "documentation": "@notice Updates cycle duration\n\n /// @param _durationSeconds The amount of time (in seconds) that should have\n passed before a new cycle can be called.", - "id": 703, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 687, - "modifierName": { - "argumentTypes": null, - "id": 686, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "13267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13267:9:1" - } - ], - "name": "updateCycleDuration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 684, - "name": "_durationSeconds", - "nodeType": "VariableDeclaration", - "scope": 703, - "src": "13232:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13231:26:1" - }, - "returnParameters": { - "id": 688, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:0:1" - }, - "scope": 959, - "src": "13203:234:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "13709:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 713, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "13743:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 710, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "13719:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "13719:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13719:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "13719:34:1" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodePaymentStore.\n\n /// @param _newOwner The address to transfer the ownership to.", - "id": 717, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 708, - "modifierName": { - "argumentTypes": null, - "id": 707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "13699:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13699:9:1" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 705, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "13671:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13670:19:1" - }, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "13709:0:1" - }, - "scope": 959, - "src": "13639:121:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "14035:39:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 722, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14045:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "14045:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14045:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "14045:22:1" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another DarknodePaymentStore.", - "id": 728, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 720, - "modifierName": { - "argumentTypes": null, - "id": 719, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "14025:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14025:9:1" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 718, - "nodeType": "ParameterList", - "parameters": [], - "src": "14013:2:1" - }, - "returnParameters": { - "id": 721, - "nodeType": "ParameterList", - "parameters": [], - "src": "14035:0:1" - }, - "scope": 959, - "src": "13985:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "14415:655:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14433:40:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 734, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14434:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 736, - "indexExpression": { - "argumentTypes": null, - "id": 735, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14448:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 738, - "indexExpression": { - "argumentTypes": null, - "id": 737, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14459:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "72657761726420616c726561647920636c61696d6564", - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14475:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - }, - "value": "reward already claimed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - } - ], - "id": 733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "14425:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14425:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 742, - "nodeType": "ExpressionStatement", - "src": "14425:75:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 743, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 746, - "indexExpression": { - "argumentTypes": null, - "id": 744, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14524:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14510:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 747, - "indexExpression": { - "argumentTypes": null, - "id": 745, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14510:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14510:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "nodeType": "ExpressionStatement", - "src": "14510:46:1" - }, - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "14566:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 755, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 753, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14585:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14585:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14566:42:1" - }, - { - "body": { - "id": 802, - "nodeType": "Block", - "src": "14657:407:1", - "statements": [ - { - "assignments": [ - 767 - ], - "declarations": [ - { - "constant": false, - "id": 767, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "14671:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 768, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14687:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 770, - "indexExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14704:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14671:35:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14799:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14824:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14799:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14799:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 801, - "nodeType": "IfStatement", - "src": "14795:259:1", - "trueBody": { - "id": 800, - "nodeType": "Block", - "src": "14836:218:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 777, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14854:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 779, - "indexExpression": { - "argumentTypes": null, - "id": 778, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14871:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14854:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 784, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14908:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 786, - "indexExpression": { - "argumentTypes": null, - "id": 785, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14933:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 780, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14880:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 782, - "indexExpression": { - "argumentTypes": null, - "id": 781, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14897:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14880:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "14880:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14880:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14854:86:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "14854:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15000:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15007:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15032:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15007:31:1", - "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": 790, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "incrementDarknodeBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1215, - "src": "14958:30:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14958:81:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "14958:81:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 760, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14635:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 761, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "14639:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14635:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 803, - "initializationExpression": { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 803, - "src": "14623:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14623:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 759, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14632:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14623:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14652:3:1", - "subExpression": { - "argumentTypes": null, - "id": 763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14652:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 765, - "nodeType": "ExpressionStatement", - "src": "14652:3:1" - }, - "nodeType": "ForStatement", - "src": "14618:446:1" - } - ] - }, - "documentation": "@notice Claims the darknode reward for all registered tokens into\n darknodeBalances in the DarknodePaymentStore.\n Rewards can only be claimed once per cycle.\n\n /// @param _darknode The address to the darknode to claim rewards for", - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimDarknodeReward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 805, - "src": "14388:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14388:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14387:19:1" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "14415:0:1" - }, - "scope": 959, - "src": "14358:712:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "15295:391:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 810, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15309:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15323:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15309:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 846, - "nodeType": "Block", - "src": "15435:245:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 826, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15523:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 828, - "indexExpression": { - "argumentTypes": null, - "id": 827, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15523:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15573:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "15550:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "15550:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15523:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "15523:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 835, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15594:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 837, - "indexExpression": { - "argumentTypes": null, - "id": 836, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15594:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 842, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15658:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 838, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15629:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 840, - "indexExpression": { - "argumentTypes": null, - "id": 839, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15646:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "15629:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:40:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15594:75:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "15594:75:1" - } - ] - }, - "id": 847, - "nodeType": "IfStatement", - "src": "15305:375:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "15326:103:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 813, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15340:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 815, - "indexExpression": { - "argumentTypes": null, - "id": 814, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15357:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15340:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15367:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15340:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "15340:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 819, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15382:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 821, - "indexExpression": { - "argumentTypes": null, - "id": 820, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15382:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15417:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15382:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "15382:36:1" - } - ] - } - } - ] - }, - "documentation": "@notice Snapshots the current balance of the tokens, for all registered\n tokens.\n\n /// @param _token The address the token to snapshot.", - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_snapshotBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "15271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15271:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15270:16:1" - }, - "returnParameters": { - "id": 809, - "nodeType": "ParameterList", - "parameters": [], - "src": "15295:0:1" - }, - "scope": 959, - "src": "15245:441:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 907, - "nodeType": "Block", - "src": "15912:638:1", - "statements": [ - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "lastToken", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "15922:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 856, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15942:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 862, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15987:1:1", - "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": 857, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15959:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15959:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "15959:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15959:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15942:48:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15922:68:1" - }, - { - "assignments": [ - 865 - ], - "declarations": [ - { - "constant": false, - "id": 865, - "name": "deletedTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "16000:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 864, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16000:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16061:1:1", - "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": 866, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16028:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 868, - "indexExpression": { - "argumentTypes": null, - "id": 867, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16049:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16028:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "16028:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16000:63:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 873, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16147:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 875, - "indexExpression": { - "argumentTypes": null, - "id": 874, - "name": "deletedTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "16164:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16147:35:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 876, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16147:47:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "16147:47:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 879, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16204:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 881, - "indexExpression": { - "argumentTypes": null, - "id": 880, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16204:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 882, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16238:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 884, - "indexExpression": { - "argumentTypes": null, - "id": 883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16238:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16204:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 886, - "nodeType": "ExpressionStatement", - "src": "16204:62:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 887, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16401:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 889, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16401:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16455:1:1", - "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": 890, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16427:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16427:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "16427:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16427:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16401:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 896, - "nodeType": "ExpressionStatement", - "src": "16401:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 897, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16467:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "id": 898, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16488:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16467:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16498:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16467:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "16467:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16536:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "LogTokenDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "16515:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16515:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 906, - "nodeType": "EmitStatement", - "src": "16510:33:1" - } - ] - }, - "documentation": "@notice Deregisters a token, removing it from the list of\n registeredTokens.\n\n /// @param _token The address of the token to deregister.", - "id": 908, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 851, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 908, - "src": "15888:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15888:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15887:16:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "15912:0:1" - }, - "scope": 959, - "src": "15862:688:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "16775:375:1", - "statements": [ - { - "assignments": [ - 912 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "16812:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16812:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 915, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 913, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16831:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16831:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16812:39:1" - }, - { - "body": { - "id": 949, - "nodeType": "Block", - "src": "16900:210:1", - "statements": [ - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "16914:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16914:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 931, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 928, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16930:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16944:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16930:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16914:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 935, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "16982:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 932, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16960:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16960:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ExpressionStatement", - "src": "16960:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 938, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "17002:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 940, - "indexExpression": { - "argumentTypes": null, - "id": 939, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17023:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17002:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 941, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "17032:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17032:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17002:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 944, - "nodeType": "ExpressionStatement", - "src": "17002:53:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 945, - "name": "LogTokenRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "17074:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17074:25:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 948, - "nodeType": "EmitStatement", - "src": "17069:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 921, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "16882:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16878:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 950, - "initializationExpression": { - "assignments": [ - 917 - ], - "declarations": [ - { - "constant": false, - "id": 917, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 950, - "src": "16866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 919, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16895:3:1", - "subExpression": { - "argumentTypes": null, - "id": 923, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16895:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "16895:3:1" - }, - "nodeType": "ForStatement", - "src": "16861:249:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 951, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "17119:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 953, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17119:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17142:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17119:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 956, - "nodeType": "ExpressionStatement", - "src": "17119:24:1" - } - ] - }, - "documentation": "@notice Updates the list of registeredTokens adding tokens that are to be registered.\n The list of tokens that are pending registration are emptied afterwards.", - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_updateTokenList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 909, - "nodeType": "ParameterList", - "parameters": [], - "src": "16764:2:1" - }, - "returnParameters": { - "id": 910, - "nodeType": "ParameterList", - "parameters": [], - "src": "16775:0:1" - }, - "scope": 959, - "src": "16739:411:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 960, - "src": "458:16695:1" - } - ], - "src": "0:17154:1" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -25378,118 +980,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:47:45.144Z", - "devdoc": { - "methods": { - "blacklist(address)": { - "params": { - "_darknode": "The address of the darknode to blacklist" - } - }, - "claim(address)": { - "params": { - "_darknode": "The address of the darknode to claim" - } - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_cycleDurationSeconds": "The minimum time before a new cycle can occur in seconds", - "_darknodePaymentStore": "The address of the DarknodePaymentStore contract", - "_darknodeRegistry": "The address of the DarknodeRegistry contract" - } - }, - "deposit(uint256,address)": { - "params": { - "_token": "The token address", - "_value": "The amount of token deposit in the token's smallest unit." - } - }, - "deregisterToken(address)": { - "params": { - "_token": "The address of the token to be deregistered." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "registerToken(address)": { - "params": { - "_token": "The address of the token to be registered." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "transferStoreOwnership(address)": { - "params": { - "_newOwner": "The address to transfer the ownership to." - } - }, - "updateBlacklister(address)": { - "params": { - "_addr": "The new Blacklister contract address." - } - }, - "updateCycleDuration(uint256)": { - "params": { - "_durationSeconds": "The amount of time (in seconds) that should have passed before a new cycle can be called." - } - }, - "withdraw(address,address)": { - "params": { - "_darknode": "The address of the darknode", - "_token": "Which token to transfer" - } - } - } - }, - "userdoc": { - "methods": { - "blacklist(address)": { - "notice": "Blacklists a darknode from participating in rewards. " - }, - "changeCycle()": { - "notice": "Changes the current cycle." - }, - "claim(address)": { - "notice": "Claims the rewards allocated to the darknode last cycle and increments the darknode balances. Whitelists the darknode if it hasn't already been whitelisted. If a darknode does not call claim() then the rewards for the previous cycle is lost. " - }, - "claimStoreOwnership()": { - "notice": "Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another DarknodePaymentStore." - }, - "constructor": "The contract constructor. Starts the current cycle using the time of deploy. ", - "currentCycleRewardPool(address)": { - "notice": "The current balance of the contract available as reward for the current cycle" - }, - "deposit(uint256,address)": { - "notice": "Deposits token into the contract to be paid to the Darknodes " - }, - "deregisterToken(address)": { - "notice": "Removes a token from the list of supported tokens. Deregistration is pending until next cycle. " - }, - "registerToken(address)": { - "notice": "Adds tokens to be payable. Registration is pending until next cycle. " - }, - "transferStoreOwnership(address)": { - "notice": "Allows the contract owner to initiate an ownership transfer of the DarknodePaymentStore. " - }, - "updateBlacklister(address)": { - "notice": "Updates the Blacklister contract address. " - }, - "updateCycleDuration(uint256)": { - "notice": "Updates cycle duration " - }, - "withdraw(address,address)": { - "notice": "Transfers the funds allocated to the darknode to the darknode owner. " - } - }, - "notice": "DarknodePayment is responsible for paying off darknodes for their computation." - } + "updatedAt": "2019-07-16T00:47:45.144Z" } \ No newline at end of file diff --git a/build/localnet/DarknodePaymentStore.json b/build/localnet/DarknodePaymentStore.json index 05b178b8..c7c4054a 100644 --- a/build/localnet/DarknodePaymentStore.json +++ b/build/localnet/DarknodePaymentStore.json @@ -369,8507 +369,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeWhitelistLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeBlacklist\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"totalBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeWhitelist\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"availableBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"incrementDarknodeBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ETHEREUM\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"isBlacklisted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"availableBalance(address)\":{\"params\":{\"_token\":\"The token to check balance of\"},\"return\":\"The available balance of the contract\"},\"blacklist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to blacklist\"}},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\"}},\"incrementDarknodeBalance(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount that the balance should be incremented by\",\"_darknode\":\"The address of the darknode to increase balance of\",\"_token\":\"The token which the balance should be incremented\"}},\"isBlacklisted(address)\":{\"params\":{\"_darknode\":\"The address of the darknode\"},\"return\":\"true if the darknode is blacklisted\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"isWhitelisted(address)\":{\"params\":{\"_darknode\":\"The address of the darknode\"},\"return\":\"true if the darknode is whitelisted\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"totalBalance(address)\":{\"params\":{\"_token\":\"The token to check balance of\"},\"return\":\"The total balance of the contract\"},\"transfer(address,address,uint256,address)\":{\"params\":{\"_amount\":\"The amount to transfer\",\"_darknode\":\"The address of the darknode\",\"_recipient\":\"The address to withdraw it to\",\"_token\":\"Which token to transfer\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"whitelist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to whitelist\"}}}},\"userdoc\":{\"methods\":{\"availableBalance(address)\":{\"notice\":\"Get the available balance of the contract for a particular token This is the free amount which has not yet been allocated to darknodes. \"},\"blacklist(address)\":{\"notice\":\"Blacklists a darknode from participating in reward allocation. If the darknode is whitelisted, it is removed from the whitelist and the number of whitelisted nodes is decreased. \"},\"constructor\":\"The contract constructor. \",\"incrementDarknodeBalance(address,address,uint256)\":{\"notice\":\"Increments the amount of funds allocated to a particular darknode. \"},\"isBlacklisted(address)\":{\"notice\":\"Checks to see if a darknode is blacklisted \"},\"isWhitelisted(address)\":{\"notice\":\"Checks to see if a darknode is whitelisted \"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalBalance(address)\":{\"notice\":\"Get the total balance of the contract for a particular token \"},\"transfer(address,address,uint256,address)\":{\"notice\":\"Transfers an amount out of balance to a specified address \"},\"whitelist(address)\":{\"notice\":\"Whitelists a darknode allowing it to participate in reward allocation. \"}},\"notice\":\"DarknodePaymentStore is responsible for tracking black/whitelisted darknodes as well as the balances which have been allocated to the darknodes. It is also responsible for holding the tokens to be paid out to darknodes.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":\"DarknodePaymentStore\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":{\"keccak256\":\"0x5fa14e396e45b93df54c1641ce8d0d83fa8ac3ec6679bb969b4088360e2f97d5\",\"urls\":[\"bzzr://de076428cc66269df2aa797cee62012ff56c963eeb1dfee77314731f9ea98200\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol\":{\"keccak256\":\"0xb9e38917912b1ff2e0a1d6996636170c0af89fb412d4168a5dfa6c9a55b2f71a\",\"urls\":[\"bzzr://238d0af72f2ac122a434f414df1707630b5a07fee0e042fdf94b97f202f34ac0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzzr://f7f6da60a184233fd666ac44e6fb2bd51ca6ebdc4867a310d368049aa4e62786\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620013a9380380620013a9833981018060405260208110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b5050600180546001600160a01b0319163317908190556040519194506001600160a01b03169250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38051620000e4906002906020840190620000ec565b505062000191565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012f57805160ff19168380011785556200015f565b828001600101855582156200015f579182015b828111156200015f57825182559160200191906001019062000142565b506200016d92915062000171565b5090565b6200018e91905b808211156200016d576000815560010162000178565b90565b61120880620001a16000396000f3fe60806040526004361061011f5760003560e01c80639a4d6f3b116100a0578063f7cdf47c11610064578063f7cdf47c146103e2578063f9ce7813146103f7578063f9f92be414610440578063fe575a8714610473578063ffa1ad74146104a65761011f565b80639a4d6f3b146102d35780639b19251a14610306578063a0821be314610339578063d23b90a51461036c578063f2fde38b146103af5761011f565b80636eacd398116100e75780636eacd3981461020a57806370324b771461023d578063715018a6146102785780638da5cb5b1461028d5780638f32d59b146102be5761011f565b80630483a7f6146101215780631fc6fe8e146101665780633af32abf1461017b5780634c89d726146101c25780634e71e0c8146101f5575b005b34801561012d57600080fd5b506101546004803603602081101561014457600080fd5b50356001600160a01b0316610530565b60408051918252519081900360200190f35b34801561017257600080fd5b50610154610542565b34801561018757600080fd5b506101ae6004803603602081101561019e57600080fd5b50356001600160a01b0316610548565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b50610154600480360360208110156101e557600080fd5b50356001600160a01b0316610569565b34801561020157600080fd5b5061011f61057b565b34801561021657600080fd5b506101546004803603602081101561022d57600080fd5b50356001600160a01b0316610642565b34801561024957600080fd5b506101546004803603604081101561026057600080fd5b506001600160a01b03813581169160200135166106ed565b34801561028457600080fd5b5061011f61070a565b34801561029957600080fd5b506102a261079e565b604080516001600160a01b039092168252519081900360200190f35b3480156102ca57600080fd5b506101ae6107ad565b3480156102df57600080fd5b50610154600480360360208110156102f657600080fd5b50356001600160a01b03166107be565b34801561031257600080fd5b5061011f6004803603602081101561032957600080fd5b50356001600160a01b03166107d0565b34801561034557600080fd5b506101546004803603602081101561035c57600080fd5b50356001600160a01b03166108fb565b34801561037857600080fd5b5061011f6004803603606081101561038f57600080fd5b506001600160a01b03813581169160208101359091169060400135610933565b3480156103bb57600080fd5b5061011f600480360360208110156103d257600080fd5b50356001600160a01b0316610acf565b3480156103ee57600080fd5b506102a2610b3b565b34801561040357600080fd5b5061011f6004803603608081101561041a57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610b53565b34801561044c57600080fd5b5061011f6004803603602081101561046357600080fd5b50356001600160a01b0316610d26565b34801561047f57600080fd5b506101ae6004803603602081101561049657600080fd5b50356001600160a01b0316610e2b565b3480156104b257600080fd5b506104bb610e48565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60056020526000908152604090205481565b60035481565b6001600160a01b03811660009081526007602052604090205415155b919050565b60066020526000908152604090205481565b6000546001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561067157503031610564565b60408051600160e01b6370a0823102815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50519050610564565b600460209081526000928352604080842090915290825290205481565b6107126107ad565b6107545760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60076020526000908152604090205481565b6107d86107ad565b61081a5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b61082381610e2b565b156108785760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b61088181610548565b156108d65760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020429055600380546001019055565b6001600160a01b03811660009081526005602052604081205461092d9061092184610642565b9063ffffffff610ed316565b92915050565b61093b6107ad565b61097d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600081116109d55760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b806109df836108fb565b1015610a355760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260046020908152604080832093861683529290522054610a6b908263ffffffff610f3316565b6001600160a01b0380851660009081526004602090815260408083209387168352928152828220939093556005909252902054610aae908263ffffffff610f3316565b6001600160a01b039092166000908152600560205260409020919091555050565b610ad76107ad565b610b195760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b610b5b6107ad565b610b9d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054821115610c1a5760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e74206461726b6e6f64652062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054610c50908363ffffffff610ed316565b6001600160a01b0380861660009081526004602090815260408083209388168352928152828220939093556005909252902054610c93908363ffffffff610ed316565b6001600160a01b03841660008181526005602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d06576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b50610d20565b610d206001600160a01b038416828463ffffffff610f9716565b50505050565b610d2e6107ad565b610d705760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b610d7981610e2b565b15610dce5760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c726561647920626c61636b6c697374656400000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020429055610df281610548565b15610e28576001600160a01b038116600090815260076020526040812055600354610e2490600163ffffffff610ed316565b6003555b50565b6001600160a01b0316600090815260066020526040902054151590565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b600082821115610f2d5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610f905760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610fec908490610ff1565b505050565b611003826001600160a01b03166111b6565b6110575760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110955780518252601f199092019160209182019101611076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110f7576040519150601f19603f3d011682016040523d82523d6000602084013e6110fc565b606091505b50915091508161114d5760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115610d205780806020019051602081101561116957600080fd5b5051610d205760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b3b15159056fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058205bdd576bfc5c0fc8a0e9dc975455405dd3473ee2d67ad2b9f9d09b19e115e6610029", - "deployedBytecode": "0x60806040526004361061011f5760003560e01c80639a4d6f3b116100a0578063f7cdf47c11610064578063f7cdf47c146103e2578063f9ce7813146103f7578063f9f92be414610440578063fe575a8714610473578063ffa1ad74146104a65761011f565b80639a4d6f3b146102d35780639b19251a14610306578063a0821be314610339578063d23b90a51461036c578063f2fde38b146103af5761011f565b80636eacd398116100e75780636eacd3981461020a57806370324b771461023d578063715018a6146102785780638da5cb5b1461028d5780638f32d59b146102be5761011f565b80630483a7f6146101215780631fc6fe8e146101665780633af32abf1461017b5780634c89d726146101c25780634e71e0c8146101f5575b005b34801561012d57600080fd5b506101546004803603602081101561014457600080fd5b50356001600160a01b0316610530565b60408051918252519081900360200190f35b34801561017257600080fd5b50610154610542565b34801561018757600080fd5b506101ae6004803603602081101561019e57600080fd5b50356001600160a01b0316610548565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b50610154600480360360208110156101e557600080fd5b50356001600160a01b0316610569565b34801561020157600080fd5b5061011f61057b565b34801561021657600080fd5b506101546004803603602081101561022d57600080fd5b50356001600160a01b0316610642565b34801561024957600080fd5b506101546004803603604081101561026057600080fd5b506001600160a01b03813581169160200135166106ed565b34801561028457600080fd5b5061011f61070a565b34801561029957600080fd5b506102a261079e565b604080516001600160a01b039092168252519081900360200190f35b3480156102ca57600080fd5b506101ae6107ad565b3480156102df57600080fd5b50610154600480360360208110156102f657600080fd5b50356001600160a01b03166107be565b34801561031257600080fd5b5061011f6004803603602081101561032957600080fd5b50356001600160a01b03166107d0565b34801561034557600080fd5b506101546004803603602081101561035c57600080fd5b50356001600160a01b03166108fb565b34801561037857600080fd5b5061011f6004803603606081101561038f57600080fd5b506001600160a01b03813581169160208101359091169060400135610933565b3480156103bb57600080fd5b5061011f600480360360208110156103d257600080fd5b50356001600160a01b0316610acf565b3480156103ee57600080fd5b506102a2610b3b565b34801561040357600080fd5b5061011f6004803603608081101561041a57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610b53565b34801561044c57600080fd5b5061011f6004803603602081101561046357600080fd5b50356001600160a01b0316610d26565b34801561047f57600080fd5b506101ae6004803603602081101561049657600080fd5b50356001600160a01b0316610e2b565b3480156104b257600080fd5b506104bb610e48565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60056020526000908152604090205481565b60035481565b6001600160a01b03811660009081526007602052604090205415155b919050565b60066020526000908152604090205481565b6000546001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561067157503031610564565b60408051600160e01b6370a0823102815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50519050610564565b600460209081526000928352604080842090915290825290205481565b6107126107ad565b6107545760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60076020526000908152604090205481565b6107d86107ad565b61081a5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b61082381610e2b565b156108785760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b61088181610548565b156108d65760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020429055600380546001019055565b6001600160a01b03811660009081526005602052604081205461092d9061092184610642565b9063ffffffff610ed316565b92915050565b61093b6107ad565b61097d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600081116109d55760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b806109df836108fb565b1015610a355760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260046020908152604080832093861683529290522054610a6b908263ffffffff610f3316565b6001600160a01b0380851660009081526004602090815260408083209387168352928152828220939093556005909252902054610aae908263ffffffff610f3316565b6001600160a01b039092166000908152600560205260409020919091555050565b610ad76107ad565b610b195760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b610b5b6107ad565b610b9d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054821115610c1a5760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e74206461726b6e6f64652062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054610c50908363ffffffff610ed316565b6001600160a01b0380861660009081526004602090815260408083209388168352928152828220939093556005909252902054610c93908363ffffffff610ed316565b6001600160a01b03841660008181526005602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d06576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b50610d20565b610d206001600160a01b038416828463ffffffff610f9716565b50505050565b610d2e6107ad565b610d705760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b610d7981610e2b565b15610dce5760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c726561647920626c61636b6c697374656400000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020429055610df281610548565b15610e28576001600160a01b038116600090815260076020526040812055600354610e2490600163ffffffff610ed316565b6003555b50565b6001600160a01b0316600090815260066020526040902054151590565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b600082821115610f2d5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610f905760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610fec908490610ff1565b505050565b611003826001600160a01b03166111b6565b6110575760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110955780518252601f199092019160209182019101611076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110f7576040519150601f19603f3d011682016040523d82523d6000602084013e6110fc565b606091505b50915091508161114d5760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115610d205780806020019051602081101561116957600080fd5b5051610d205760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b3b15159056fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058205bdd576bfc5c0fc8a0e9dc975455405dd3473ee2d67ad2b9f9d09b19e115e6610029", - "sourceMap": "559:5552:2:-;;;1561:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;1561:92:2;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1561:92: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;-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;1561:92:2;;-1:-1:-1;;;;;;595:6:13;;-1:-1:-1;528:6:13;;-1:-1:-1;562:40:13;;528:6;;562:40;1628:18:2;;;;:7;;:18;;;;;:::i;:::-;;1561:92;559:5552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:5552:2;;;-1:-1:-1;559:5552:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "559:5552:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1157:49:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1157:49:2;-1:-1:-1;;;;;1157:49:2;;:::i;:::-;;;;;;;;;;;;;;;;929:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;929:38:2;;;:::i;2255:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:126:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2255:126:2;-1:-1:-1;;;;;2255:126:2;;:::i;:::-;;;;;;;;;;;;;;;;;;1271:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:52:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1271:52:2;-1:-1:-1;;;;;1271:52:2;;:::i;2166:177:13:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2166:177:13;;;:::i;2574:237:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2574:237:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2574:237:2;-1:-1:-1;;;;;2574:237:2;;:::i;1030:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1030:71:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1030:71:2;;;;;;;;;;:::i;1688:137:13:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1688:137:13;;;:::i;672:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;672:77:13;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1244:90:13;;;:::i;1388:52:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1388:52:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1388:52:2;-1:-1:-1;;;;;1388:52:2;;:::i;4212:303::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4212:303:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4212:303:2;-1:-1:-1;;;;;4212:303:2;;:::i;3115:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3115:144:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3115:144:2;-1:-1:-1;;;;;3115:144:2;;:::i;4852:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4852:414:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4852:414:2;;;;;;;;;;;;;;;;;:::i;1975:101:13:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1975:101:13;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;803:77:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;803:77:2;;;:::i;5555:553::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5555:553:2;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;5555:553:2;;;;;;;;;;;;;;;;;;;;;;:::i;3565:464::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3565:464:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3565:464:2;-1:-1:-1;;;;;3565:464:2;;:::i;1951:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1951:126:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1951:126:2;-1:-1:-1;;;;;1951:126:2;;:::i;687:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;687:21:2;;;:::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;687:21:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:49;;;;;;;;;;;;;:::o;929:38::-;;;;:::o;2255:126::-;-1:-1:-1;;;;;2341:28:2;;2318:4;2341:28;;;:17;:28;;;;;;:33;;2255:126;;;;:::o;1271:52::-;;;;;;;;;;;;;:::o;2166:177:13:-;1091:13;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:13;;;-1:-1:-1;;;;;2289:13:13;;2280:22;;;;2310:26;;;2166:177::o;2574:237:2:-;2633:7;-1:-1:-1;;;;;2656:18:2;;838:42;2656:18;2652:153;;;-1:-1:-1;2705:4:2;2697:21;2690:28;;2652:153;2756:38;;;-1:-1:-1;;;;;2756:38:2;;2788:4;2756:38;;;;;;-1:-1:-1;;;;;2756:23:2;;;;;:38;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2756:38:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2756:38:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2756:38:2;;-1:-1:-1;2749:45:2;;1030:71;;;;;;;;;;;;;;;;;;;;;;;;:::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;1388:52:2:-;;;;;;;;;;;;;:::o;4212:303::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;4288:24:2;4302:9;4288:13;:24::i;:::-;4287:25;4279:61;;;;;-1:-1:-1;;;;;4279:61:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4359:24;4373:9;4359:13;:24::i;:::-;4358:25;4350:66;;;;;-1:-1:-1;;;;;4350:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4427:28:2;;;;;:17;:28;;;;;4458:15;4427:46;;4483:23;:25;;;;;;4212:303::o;3115:144::-;-1:-1:-1;;;;;3229:22:2;;3178:7;3229:22;;;:14;:22;;;;;;3204:48;;:20;3244:6;3204:12;:20::i;:::-;:24;:48;:24;:48;:::i;:::-;3197:55;3115:144;-1:-1:-1;;3115:144:2:o;4852:414::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;4985:1:2;4975:7;:11;4967:38;;;;;-1:-1:-1;;;;;4967:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;5051:7;5023:24;5040:6;5023:16;:24::i;:::-;:35;;5015:77;;;;;-1:-1:-1;;;;;5015:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5141:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:48;;5181:7;5141:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;5103:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;;:86;;;;5224:14;:22;;;;;;:35;;5251:7;5224:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;5199:22:2;;;;;;;:14;:22;;;;;:60;;;;-1:-1:-1;;4852:414:2:o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:13;-1:-1:-1;;;;;2045:24:13;;;;;;;;;;1975:101::o;803:77:2:-;838:42;803:77;:::o;5555:553::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;5690:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:46;-1:-1:-1;5690:46:2;5682:88;;;;;-1:-1:-1;;;;;5682:88:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5818:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:48;;5858:7;5818:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;5780:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;;:86;;;;5901:14;:22;;;;;;:35;;5928:7;5901:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;5876:22:2;;;;;;:14;:22;;;;;:60;;;;838:42;5951:18;5947:155;;;5985:28;;-1:-1:-1;;;;;5985:19:2;;;:28;;;;;6005:7;;5985:28;;;;6005:7;5985:19;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5985:28:2;5947:155;;;6044:47;-1:-1:-1;;;;;6044:26:2;;6071:10;6083:7;6044:47;:26;:47;:::i;:::-;5555:553;;;;:::o;3565:464::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3641:24:2;3655:9;3641:13;:24::i;:::-;3640:25;3632:66;;;;;-1:-1:-1;;;;;3632:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3708:28:2;;;;;;:17;:28;;;;;3739:15;3708:46;;3805:24;3726:9;3805:13;:24::i;:::-;3801:222;;;-1:-1:-1;;;;;3845:28:2;;3876:1;3845:28;;;:17;:28;;;;;:32;3982:23;;:30;;4010:1;3982:30;:27;:30;:::i;:::-;3956:23;:56;3801:222;3565:464;:::o;1951:126::-;-1:-1:-1;;;;;2037:28:2;2014:4;2037:28;;;:17;:28;;;;;;:33;;;1951:126::o;687:21::-;;;;;;;;;;;;;;-1:-1:-1;;687:21:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;944:174:15:-;1052:58;;;-1:-1:-1;;;;;1052:58:15;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1052:58:15;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;1026:85:15;;1045:5;;1026:18;:85::i;:::-;944:174;;;:::o;3398:930::-;3941:27;3949:5;-1:-1:-1;;;;;3941:25:15;;:27::i;:::-;3933:55;;;;;-1:-1:-1;;;;;3933:55:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:12;4073:23;4108:5;-1:-1:-1;;;;;4100:19:15;4120:4;4100:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4100:25:15;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4058:67:15;;;;4143:7;4135:37;;;;;-1:-1:-1;;;;;4135:37:15;;;;;;;;;;;;-1:-1:-1;;;;;4135:37:15;;;;;;;;;;;;;;;4187:17;;:21;4183:139;;4270:10;4259:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4259:30:15;4251:60;;;;;-1:-1:-1;;;;;4251:60:15;;;;;;;;;;;;-1:-1:-1;;;;;4251:60:15;;;;;;;;;;;;;;542:413:42;902:20;940:8;;;542:413::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\nimport \"../libraries/Claimable.sol\";\nimport \"../libraries/CompatibleERC20Functions.sol\";\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\n\n/// @notice DarknodePaymentStore is responsible for tracking black/whitelisted\n/// darknodes as well as the balances which have been allocated to the\n/// darknodes. It is also responsible for holding the tokens to be paid\n/// out to darknodes.\ncontract DarknodePaymentStore is Claimable {\n using SafeMath for uint256;\n using CompatibleERC20Functions for ERC20;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice The special address for Ether.\n address constant public ETHEREUM = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n /// @notice The size of the whitelist\n uint256 public darknodeWhitelistLength;\n\n /// @notice Mapping of darknode -> token -> balance\n mapping(address => mapping(address => uint256)) public darknodeBalances;\n\n /// @notice Mapping of token -> lockedAmount\n mapping(address => uint256) public lockedBalances;\n\n /// @notice mapping of darknode -> blacklistTimestamp\n mapping(address => uint256) public darknodeBlacklist;\n\n /// @notice mapping of darknode -> whitelistTimestamp\n mapping(address => uint256) public darknodeWhitelist;\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n constructor(\n string memory _VERSION\n ) public {\n VERSION = _VERSION;\n }\n\n /// @notice Allow direct payments to be made to the DarknodePaymentStore.\n function () external payable {\n }\n\n /// @notice Checks to see if a darknode is blacklisted\n ///\n /// @param _darknode The address of the darknode\n /// @return true if the darknode is blacklisted\n function isBlacklisted(address _darknode) public view returns (bool) {\n return darknodeBlacklist[_darknode] != 0;\n }\n\n /// @notice Checks to see if a darknode is whitelisted\n ///\n /// @param _darknode The address of the darknode\n /// @return true if the darknode is whitelisted\n function isWhitelisted(address _darknode) public view returns (bool) {\n return darknodeWhitelist[_darknode] != 0;\n }\n\n /// @notice Get the total balance of the contract for a particular token\n ///\n /// @param _token The token to check balance of\n /// @return The total balance of the contract\n function totalBalance(address _token) public view returns (uint256) {\n if (_token == ETHEREUM) {\n return address(this).balance;\n } else {\n return ERC20(_token).balanceOf(address(this));\n }\n }\n\n /// @notice Get the available balance of the contract for a particular token\n /// This is the free amount which has not yet been allocated to\n /// darknodes.\n ///\n /// @param _token The token to check balance of\n /// @return The available balance of the contract\n function availableBalance(address _token) public view returns (uint256) {\n return totalBalance(_token).sub(lockedBalances[_token]);\n }\n\n /// @notice Blacklists a darknode from participating in reward allocation.\n /// If the darknode is whitelisted, it is removed from the whitelist\n /// and the number of whitelisted nodes is decreased.\n ///\n /// @param _darknode The address of the darknode to blacklist\n function blacklist(address _darknode) external onlyOwner {\n require(!isBlacklisted(_darknode), \"darknode already blacklisted\");\n darknodeBlacklist[_darknode] = block.timestamp;\n\n // Unwhitelist if necessary\n if (isWhitelisted(_darknode)) {\n darknodeWhitelist[_darknode] = 0;\n // Use SafeMath when subtracting to avoid underflows\n darknodeWhitelistLength = darknodeWhitelistLength.sub(1);\n }\n }\n\n /// @notice Whitelists a darknode allowing it to participate in reward\n /// allocation.\n ///\n /// @param _darknode The address of the darknode to whitelist\n function whitelist(address _darknode) external onlyOwner {\n require(!isBlacklisted(_darknode), \"darknode is blacklisted\");\n require(!isWhitelisted(_darknode), \"darknode already whitelisted\");\n\n darknodeWhitelist[_darknode] = block.timestamp;\n darknodeWhitelistLength++;\n }\n\n /// @notice Increments the amount of funds allocated to a particular\n /// darknode.\n ///\n /// @param _darknode The address of the darknode to increase balance of\n /// @param _token The token which the balance should be incremented\n /// @param _amount The amount that the balance should be incremented by\n function incrementDarknodeBalance(address _darknode, address _token, uint256 _amount) external onlyOwner {\n require(_amount > 0, \"invalid amount\");\n require(availableBalance(_token) >= _amount, \"insufficient contract balance\");\n\n darknodeBalances[_darknode][_token] = darknodeBalances[_darknode][_token].add(_amount);\n lockedBalances[_token] = lockedBalances[_token].add(_amount);\n }\n\n /// @notice Transfers an amount out of balance to a specified address\n ///\n /// @param _darknode The address of the darknode\n /// @param _token Which token to transfer\n /// @param _amount The amount to transfer\n /// @param _recipient The address to withdraw it to\n function transfer(address _darknode, address _token, uint256 _amount, address payable _recipient) external onlyOwner {\n require(darknodeBalances[_darknode][_token] >= _amount, \"insufficient darknode balance\");\n darknodeBalances[_darknode][_token] = darknodeBalances[_darknode][_token].sub(_amount);\n lockedBalances[_token] = lockedBalances[_token].sub(_amount);\n\n if (_token == ETHEREUM) {\n _recipient.transfer(_amount);\n } else {\n ERC20(_token).safeTransfer(_recipient, _amount);\n }\n }\n\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "exportedSymbols": { - "DarknodePaymentStore": [ - 1287 - ] - }, - "id": 1288, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 961, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 962, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7360, - "src": "25:59:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 963, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7868, - "src": "85:63:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 964, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4282, - "src": "150:36:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 965, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4636, - "src": "187:51:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 966, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 2391, - "src": "239:50:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 967, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "592:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 968, - "nodeType": "InheritanceSpecifier", - "src": "592:9:2" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePaymentStore is responsible for tracking black/whitelisted\n darknodes as well as the balances which have been allocated to the\n darknodes. It is also responsible for holding the tokens to be paid\n out to darknodes.", - "fullyImplemented": true, - "id": 1287, - "linearizedBaseContracts": [ - 1287, - 4281 - ], - "name": "DarknodePaymentStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 971, - "libraryName": { - "contractScope": null, - "id": 969, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "614:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "608:27:2", - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 974, - "libraryName": { - "contractScope": null, - "id": 972, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4635, - "src": "646:24:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4635", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "640:41:2", - "typeName": { - "contractScope": null, - "id": 973, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "675:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 976, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "687:21:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 975, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "687:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 979, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "803:77:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "838:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 981, - "name": "darknodeWhitelistLength", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "929:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "929:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 987, - "name": "darknodeBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1030:71:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 986, - "keyType": { - "id": 982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1030:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 985, - "keyType": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1049:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1068:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 991, - "name": "lockedBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1157:49:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 990, - "keyType": { - "id": 988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1157:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 995, - "name": "darknodeBlacklist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1271:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 994, - "keyType": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1271:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1290:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 999, - "name": "darknodeWhitelist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1388:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 998, - "keyType": { - "id": 996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1388:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "1618:35:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1004, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "1628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1005, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1638:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1628:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1628:18:2" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.", - "id": 1009, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "1582:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1582:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:38:2" - }, - "returnParameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "1618:0:2" - }, - "scope": 1287, - "src": "1561:92:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1012, - "nodeType": "Block", - "src": "1766:7:2", - "statements": [] - }, - "documentation": "@notice Allow direct payments to be made to the DarknodePaymentStore.", - "id": 1013, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [], - "src": "1746:2:2" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:2" - }, - "scope": 1287, - "src": "1737:36:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "2020:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1020, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "2037:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "2055:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2037:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2069:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2037:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1019, - "id": 1025, - "nodeType": "Return", - "src": "2030:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is blacklisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is blacklisted", - "id": 1027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isBlacklisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1015, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "1974:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1973:19:2" - }, - "returnParameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1018, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "2014:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2013:6:2" - }, - "scope": 1287, - "src": "1951:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "2324:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1034, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "2341:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1036, - "indexExpression": { - "argumentTypes": null, - "id": 1035, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "2359:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2341:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2373:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2341:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1033, - "id": 1039, - "nodeType": "Return", - "src": "2334:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is whitelisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is whitelisted", - "id": 1041, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1029, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2278:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2277:19:2" - }, - "returnParameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2318:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1031, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2318:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:6:2" - }, - "scope": 1287, - "src": "2255:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "2642:169:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2656:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2656:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1066, - "nodeType": "Block", - "src": "2735:70:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1062, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8213, - "src": "2788:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2780:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1058, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2762:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1057, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7867, - "src": "2756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7867_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 7511, - "src": "2756:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1065, - "nodeType": "Return", - "src": "2749:45:2" - } - ] - }, - "id": 1067, - "nodeType": "IfStatement", - "src": "2652:153:2", - "trueBody": { - "id": 1056, - "nodeType": "Block", - "src": "2676:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8213, - "src": "2705:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2697:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1055, - "nodeType": "Return", - "src": "2690:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Get the total balance of the contract for a particular token\n\n /// @param _token The token to check balance of\n @return The total balance of the contract", - "id": 1069, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2596:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2595:16:2" - }, - "returnParameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2633:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2632:9:2" - }, - "scope": 1287, - "src": "2574:237:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1085, - "nodeType": "Block", - "src": "3187:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1080, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3229:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1082, - "indexExpression": { - "argumentTypes": null, - "id": 1081, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3244:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3229:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3217:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1076, - "name": "totalBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "3204:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "3204:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1075, - "id": 1084, - "nodeType": "Return", - "src": "3197:55:2" - } - ] - }, - "documentation": "@notice Get the available balance of the contract for a particular token\n This is the free amount which has not yet been allocated to\n darknodes.\n\n /// @param _token The token to check balance of\n @return The available balance of the contract", - "id": 1086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3141:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3140:16:2" - }, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3178:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3177:9:2" - }, - "scope": 1287, - "src": "3115:144:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "3622:407:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3640:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3655:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1094, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "3641:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3641:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c726561647920626c61636b6c6973746564", - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3667:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - }, - "value": "darknode already blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - } - ], - "id": 1093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3632:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1100, - "nodeType": "ExpressionStatement", - "src": "3632:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1101, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "3708:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1103, - "indexExpression": { - "argumentTypes": null, - "id": 1102, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3726:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3708:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1104, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "3739:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3708:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "3708:46:2" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1109, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3819:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1108, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "3805:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3805:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1125, - "nodeType": "IfStatement", - "src": "3801:222:2", - "trueBody": { - "id": 1124, - "nodeType": "Block", - "src": "3831:192:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1111, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3845:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1113, - "indexExpression": { - "argumentTypes": null, - "id": 1112, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3863:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3845:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3876:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3845:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "3845:32:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1117, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3956:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4010:1:2", - "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": 1118, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3982:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "3982:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3982:30:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3956:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "3956:56:2" - } - ] - } - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in reward allocation.\n If the darknode is whitelisted, it is removed from the whitelist\n and the number of whitelisted nodes is decreased.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 1127, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1091, - "modifierName": { - "argumentTypes": null, - "id": 1090, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3612:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3612:9:2" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "3584:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3584:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3583:19:2" - }, - "returnParameters": { - "id": 1092, - "nodeType": "ParameterList", - "parameters": [], - "src": "3622:0:2" - }, - "scope": 1287, - "src": "3565:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1160, - "nodeType": "Block", - "src": "4269:246:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4287:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1136, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4302:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1135, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "4288:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4314:25:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4279:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "4279:61:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4358:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4373:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1143, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "4359:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c72656164792077686974656c6973746564", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4385:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - }, - "value": "darknode already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - } - ], - "id": 1142, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4350:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1149, - "nodeType": "ExpressionStatement", - "src": "4350:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "4427:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4427:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "4458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4458:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4427:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1156, - "nodeType": "ExpressionStatement", - "src": "4427:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4483:25:2", - "subExpression": { - "argumentTypes": null, - "id": 1157, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4483:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "nodeType": "ExpressionStatement", - "src": "4483:25:2" - } - ] - }, - "documentation": "@notice Whitelists a darknode allowing it to participate in reward\n allocation.\n\n /// @param _darknode The address of the darknode to whitelist", - "id": 1161, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4259:9:2" - } - ], - "name": "whitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "4231:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4230:19:2" - }, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "4269:0:2" - }, - "scope": 1287, - "src": "4212:303:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "4957:309:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "4975:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4985:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4975:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420616d6f756e74", - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:16:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - }, - "value": "invalid amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - } - ], - "id": 1172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4967:38:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "4967:38:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5040:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1180, - "name": "availableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "5023:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1183, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5023:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420636f6e74726163742062616c616e6365", - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5060:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - }, - "value": "insufficient contract balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - } - ], - "id": 1179, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5015:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:77:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "5015:77:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1188, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5103:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5120:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5103:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1192, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5103:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1199, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1193, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5141:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1195, - "indexExpression": { - "argumentTypes": null, - "id": 1194, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5158:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1197, - "indexExpression": { - "argumentTypes": null, - "id": 1196, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5169:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "5141:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5103:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "5103:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1203, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5199:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1205, - "indexExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5214:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5199:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1206, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5224:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1208, - "indexExpression": { - "argumentTypes": null, - "id": 1207, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5239:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5224:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "5224:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5224:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1213, - "nodeType": "ExpressionStatement", - "src": "5199:60:2" - } - ] - }, - "documentation": "@notice Increments the amount of funds allocated to a particular\n darknode.\n\n /// @param _darknode The address of the darknode to increase balance of\n @param _token The token which the balance should be incremented\n @param _amount The amount that the balance should be incremented by", - "id": 1215, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1169, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4947:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4947:9:2" - } - ], - "name": "incrementDarknodeBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4886:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4886:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1165, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4905:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4905:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1167, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4921:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4921:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4885:52:2" - }, - "returnParameters": { - "id": 1171, - "nodeType": "ParameterList", - "parameters": [], - "src": "4957:0:2" - }, - "scope": 1287, - "src": "4852:414:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "5672:436:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5690:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1231, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5707:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1232, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5718:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1234, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5729:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5690:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e74206461726b6e6f64652062616c616e6365", - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5738:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - }, - "value": "insufficient darknode balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5682:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5682:88:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1238, - "nodeType": "ExpressionStatement", - "src": "5682:88:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1239, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5780:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1242, - "indexExpression": { - "argumentTypes": null, - "id": 1240, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5797:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5780:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1243, - "indexExpression": { - "argumentTypes": null, - "id": 1241, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5808:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5780:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5858:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1244, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5818:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1246, - "indexExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5835:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1248, - "indexExpression": { - "argumentTypes": null, - "id": 1247, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5846:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5818:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5780:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1253, - "nodeType": "ExpressionStatement", - "src": "5780:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1254, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5876:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1256, - "indexExpression": { - "argumentTypes": null, - "id": 1255, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5891:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5876:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1261, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5928:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1257, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5901:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1259, - "indexExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5901:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5901:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5876:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "5876:60:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1265, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5951:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1266, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "5961:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5951:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1283, - "nodeType": "Block", - "src": "6030:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "6071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6083:7:2", - "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, - "id": 1276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "6050:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1275, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7867, - "src": "6044:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7867_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "6044:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8127_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$8127_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "6044:47:2" - } - ] - }, - "id": 1284, - "nodeType": "IfStatement", - "src": "5947:155:2", - "trueBody": { - "id": 1274, - "nodeType": "Block", - "src": "5971:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1271, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6005:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1268, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "5985:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5985:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5985:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1273, - "nodeType": "ExpressionStatement", - "src": "5985:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Transfers an amount out of balance to a specified address\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer\n @param _amount The amount to transfer\n @param _recipient The address to withdraw it to", - "id": 1286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1226, - "modifierName": { - "argumentTypes": null, - "id": 1225, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5662:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5662:9:2" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5573:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5592:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5592:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5608:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5608:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5625:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5625:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5572:80:2" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [], - "src": "5672:0:2" - }, - "scope": 1287, - "src": "5555:553:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1288, - "src": "559:5552:2" - } - ], - "src": "0:6112:2" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "exportedSymbols": { - "DarknodePaymentStore": [ - 1287 - ] - }, - "id": 1288, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 961, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 962, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7360, - "src": "25:59:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 963, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7868, - "src": "85:63:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 964, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4282, - "src": "150:36:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 965, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4636, - "src": "187:51:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 966, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 2391, - "src": "239:50:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 967, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "592:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 968, - "nodeType": "InheritanceSpecifier", - "src": "592:9:2" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePaymentStore is responsible for tracking black/whitelisted\n darknodes as well as the balances which have been allocated to the\n darknodes. It is also responsible for holding the tokens to be paid\n out to darknodes.", - "fullyImplemented": true, - "id": 1287, - "linearizedBaseContracts": [ - 1287, - 4281 - ], - "name": "DarknodePaymentStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 971, - "libraryName": { - "contractScope": null, - "id": 969, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "614:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "608:27:2", - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 974, - "libraryName": { - "contractScope": null, - "id": 972, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4635, - "src": "646:24:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4635", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "640:41:2", - "typeName": { - "contractScope": null, - "id": 973, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "675:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 976, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "687:21:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 975, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "687:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 979, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "803:77:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "838:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 981, - "name": "darknodeWhitelistLength", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "929:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "929:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 987, - "name": "darknodeBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1030:71:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 986, - "keyType": { - "id": 982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1030:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 985, - "keyType": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1049:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1068:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 991, - "name": "lockedBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1157:49:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 990, - "keyType": { - "id": 988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1157:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 995, - "name": "darknodeBlacklist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1271:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 994, - "keyType": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1271:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1290:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 999, - "name": "darknodeWhitelist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1388:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 998, - "keyType": { - "id": 996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1388:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "1618:35:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1004, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "1628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1005, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1638:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1628:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1628:18:2" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.", - "id": 1009, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "1582:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1582:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:38:2" - }, - "returnParameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "1618:0:2" - }, - "scope": 1287, - "src": "1561:92:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1012, - "nodeType": "Block", - "src": "1766:7:2", - "statements": [] - }, - "documentation": "@notice Allow direct payments to be made to the DarknodePaymentStore.", - "id": 1013, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [], - "src": "1746:2:2" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:2" - }, - "scope": 1287, - "src": "1737:36:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "2020:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1020, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "2037:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "2055:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2037:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2069:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2037:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1019, - "id": 1025, - "nodeType": "Return", - "src": "2030:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is blacklisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is blacklisted", - "id": 1027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isBlacklisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1015, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "1974:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1973:19:2" - }, - "returnParameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1018, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "2014:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2013:6:2" - }, - "scope": 1287, - "src": "1951:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "2324:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1034, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "2341:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1036, - "indexExpression": { - "argumentTypes": null, - "id": 1035, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "2359:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2341:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2373:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2341:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1033, - "id": 1039, - "nodeType": "Return", - "src": "2334:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is whitelisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is whitelisted", - "id": 1041, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1029, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2278:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2277:19:2" - }, - "returnParameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2318:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1031, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2318:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:6:2" - }, - "scope": 1287, - "src": "2255:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "2642:169:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2656:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2656:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1066, - "nodeType": "Block", - "src": "2735:70:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1062, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8213, - "src": "2788:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2780:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1058, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2762:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1057, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7867, - "src": "2756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7867_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 7511, - "src": "2756:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1065, - "nodeType": "Return", - "src": "2749:45:2" - } - ] - }, - "id": 1067, - "nodeType": "IfStatement", - "src": "2652:153:2", - "trueBody": { - "id": 1056, - "nodeType": "Block", - "src": "2676:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8213, - "src": "2705:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2697:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1055, - "nodeType": "Return", - "src": "2690:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Get the total balance of the contract for a particular token\n\n /// @param _token The token to check balance of\n @return The total balance of the contract", - "id": 1069, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2596:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2595:16:2" - }, - "returnParameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2633:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2632:9:2" - }, - "scope": 1287, - "src": "2574:237:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1085, - "nodeType": "Block", - "src": "3187:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1080, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3229:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1082, - "indexExpression": { - "argumentTypes": null, - "id": 1081, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3244:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3229:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3217:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1076, - "name": "totalBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "3204:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "3204:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1075, - "id": 1084, - "nodeType": "Return", - "src": "3197:55:2" - } - ] - }, - "documentation": "@notice Get the available balance of the contract for a particular token\n This is the free amount which has not yet been allocated to\n darknodes.\n\n /// @param _token The token to check balance of\n @return The available balance of the contract", - "id": 1086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3141:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3140:16:2" - }, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3178:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3177:9:2" - }, - "scope": 1287, - "src": "3115:144:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "3622:407:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3640:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3655:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1094, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "3641:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3641:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c726561647920626c61636b6c6973746564", - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3667:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - }, - "value": "darknode already blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - } - ], - "id": 1093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3632:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1100, - "nodeType": "ExpressionStatement", - "src": "3632:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1101, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "3708:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1103, - "indexExpression": { - "argumentTypes": null, - "id": 1102, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3726:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3708:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1104, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "3739:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3708:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "3708:46:2" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1109, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3819:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1108, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "3805:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3805:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1125, - "nodeType": "IfStatement", - "src": "3801:222:2", - "trueBody": { - "id": 1124, - "nodeType": "Block", - "src": "3831:192:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1111, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3845:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1113, - "indexExpression": { - "argumentTypes": null, - "id": 1112, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3863:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3845:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3876:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3845:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "3845:32:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1117, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3956:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4010:1:2", - "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": 1118, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3982:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "3982:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3982:30:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3956:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "3956:56:2" - } - ] - } - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in reward allocation.\n If the darknode is whitelisted, it is removed from the whitelist\n and the number of whitelisted nodes is decreased.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 1127, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1091, - "modifierName": { - "argumentTypes": null, - "id": 1090, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3612:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3612:9:2" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "3584:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3584:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3583:19:2" - }, - "returnParameters": { - "id": 1092, - "nodeType": "ParameterList", - "parameters": [], - "src": "3622:0:2" - }, - "scope": 1287, - "src": "3565:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1160, - "nodeType": "Block", - "src": "4269:246:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4287:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1136, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4302:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1135, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "4288:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4314:25:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4279:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "4279:61:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4358:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4373:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1143, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "4359:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c72656164792077686974656c6973746564", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4385:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - }, - "value": "darknode already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - } - ], - "id": 1142, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4350:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1149, - "nodeType": "ExpressionStatement", - "src": "4350:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "4427:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4427:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "4458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4458:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4427:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1156, - "nodeType": "ExpressionStatement", - "src": "4427:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4483:25:2", - "subExpression": { - "argumentTypes": null, - "id": 1157, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4483:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "nodeType": "ExpressionStatement", - "src": "4483:25:2" - } - ] - }, - "documentation": "@notice Whitelists a darknode allowing it to participate in reward\n allocation.\n\n /// @param _darknode The address of the darknode to whitelist", - "id": 1161, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4259:9:2" - } - ], - "name": "whitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "4231:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4230:19:2" - }, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "4269:0:2" - }, - "scope": 1287, - "src": "4212:303:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "4957:309:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "4975:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4985:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4975:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420616d6f756e74", - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:16:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - }, - "value": "invalid amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - } - ], - "id": 1172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4967:38:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "4967:38:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5040:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1180, - "name": "availableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "5023:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1183, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5023:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420636f6e74726163742062616c616e6365", - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5060:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - }, - "value": "insufficient contract balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - } - ], - "id": 1179, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5015:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:77:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "5015:77:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1188, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5103:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5120:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5103:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1192, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5103:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1199, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1193, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5141:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1195, - "indexExpression": { - "argumentTypes": null, - "id": 1194, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5158:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1197, - "indexExpression": { - "argumentTypes": null, - "id": 1196, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5169:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "5141:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5103:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "5103:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1203, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5199:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1205, - "indexExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5214:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5199:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1206, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5224:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1208, - "indexExpression": { - "argumentTypes": null, - "id": 1207, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5239:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5224:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "5224:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5224:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1213, - "nodeType": "ExpressionStatement", - "src": "5199:60:2" - } - ] - }, - "documentation": "@notice Increments the amount of funds allocated to a particular\n darknode.\n\n /// @param _darknode The address of the darknode to increase balance of\n @param _token The token which the balance should be incremented\n @param _amount The amount that the balance should be incremented by", - "id": 1215, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1169, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4947:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4947:9:2" - } - ], - "name": "incrementDarknodeBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4886:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4886:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1165, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4905:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4905:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1167, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4921:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4921:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4885:52:2" - }, - "returnParameters": { - "id": 1171, - "nodeType": "ParameterList", - "parameters": [], - "src": "4957:0:2" - }, - "scope": 1287, - "src": "4852:414:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "5672:436:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5690:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1231, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5707:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1232, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5718:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1234, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5729:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5690:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e74206461726b6e6f64652062616c616e6365", - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5738:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - }, - "value": "insufficient darknode balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "5682:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5682:88:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1238, - "nodeType": "ExpressionStatement", - "src": "5682:88:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1239, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5780:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1242, - "indexExpression": { - "argumentTypes": null, - "id": 1240, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5797:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5780:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1243, - "indexExpression": { - "argumentTypes": null, - "id": 1241, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5808:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5780:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5858:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1244, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5818:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1246, - "indexExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5835:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1248, - "indexExpression": { - "argumentTypes": null, - "id": 1247, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5846:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5818:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5780:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1253, - "nodeType": "ExpressionStatement", - "src": "5780:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1254, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5876:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1256, - "indexExpression": { - "argumentTypes": null, - "id": 1255, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5891:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5876:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1261, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5928:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1257, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5901:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1259, - "indexExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5901:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5901:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5876:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "5876:60:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1265, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5951:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1266, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "5961:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5951:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1283, - "nodeType": "Block", - "src": "6030:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "6071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6083:7:2", - "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, - "id": 1276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "6050:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1275, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7867, - "src": "6044:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$7867_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4378, - "src": "6044:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8127_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$8127_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "6044:47:2" - } - ] - }, - "id": 1284, - "nodeType": "IfStatement", - "src": "5947:155:2", - "trueBody": { - "id": 1274, - "nodeType": "Block", - "src": "5971:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1271, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6005:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1268, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "5985:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5985:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5985:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1273, - "nodeType": "ExpressionStatement", - "src": "5985:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Transfers an amount out of balance to a specified address\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer\n @param _amount The amount to transfer\n @param _recipient The address to withdraw it to", - "id": 1286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1226, - "modifierName": { - "argumentTypes": null, - "id": 1225, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5662:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5662:9:2" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5573:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5592:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5592:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5608:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5608:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5625:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5625:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5572:80:2" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [], - "src": "5672:0:2" - }, - "scope": 1287, - "src": "5555:553:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1288, - "src": "559:5552:2" - } - ], - "src": "0:6112:2" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -8902,114 +402,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:46:30.091Z", - "devdoc": { - "methods": { - "availableBalance(address)": { - "params": { - "_token": "The token to check balance of" - }, - "return": "The available balance of the contract" - }, - "blacklist(address)": { - "params": { - "_darknode": "The address of the darknode to blacklist" - } - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version." - } - }, - "incrementDarknodeBalance(address,address,uint256)": { - "params": { - "_amount": "The amount that the balance should be incremented by", - "_darknode": "The address of the darknode to increase balance of", - "_token": "The token which the balance should be incremented" - } - }, - "isBlacklisted(address)": { - "params": { - "_darknode": "The address of the darknode" - }, - "return": "true if the darknode is blacklisted" - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "isWhitelisted(address)": { - "params": { - "_darknode": "The address of the darknode" - }, - "return": "true if the darknode is whitelisted" - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "totalBalance(address)": { - "params": { - "_token": "The token to check balance of" - }, - "return": "The total balance of the contract" - }, - "transfer(address,address,uint256,address)": { - "params": { - "_amount": "The amount to transfer", - "_darknode": "The address of the darknode", - "_recipient": "The address to withdraw it to", - "_token": "Which token to transfer" - } - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - }, - "whitelist(address)": { - "params": { - "_darknode": "The address of the darknode to whitelist" - } - } - } - }, - "userdoc": { - "methods": { - "availableBalance(address)": { - "notice": "Get the available balance of the contract for a particular token This is the free amount which has not yet been allocated to darknodes. " - }, - "blacklist(address)": { - "notice": "Blacklists a darknode from participating in reward allocation. If the darknode is whitelisted, it is removed from the whitelist and the number of whitelisted nodes is decreased. " - }, - "constructor": "The contract constructor. ", - "incrementDarknodeBalance(address,address,uint256)": { - "notice": "Increments the amount of funds allocated to a particular darknode. " - }, - "isBlacklisted(address)": { - "notice": "Checks to see if a darknode is blacklisted " - }, - "isWhitelisted(address)": { - "notice": "Checks to see if a darknode is whitelisted " - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "totalBalance(address)": { - "notice": "Get the total balance of the contract for a particular token " - }, - "transfer(address,address,uint256,address)": { - "notice": "Transfers an amount out of balance to a specified address " - }, - "whitelist(address)": { - "notice": "Whitelists a darknode allowing it to participate in reward allocation. " - } - }, - "notice": "DarknodePaymentStore is responsible for tracking black/whitelisted darknodes as well as the balances which have been allocated to the darknodes. It is also responsible for holding the tokens to be paid out to darknodes." - } + "updatedAt": "2019-07-16T00:46:30.091Z" } \ No newline at end of file diff --git a/build/localnet/DarknodeRegistry.json b/build/localnet/DarknodeRegistry.json index 64cc64d0..2550fb70 100644 --- a/build/localnet/DarknodeRegistry.json +++ b/build/localnet/DarknodeRegistry.json @@ -870,28765 +870,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isPendingRegistration\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodesNextEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumBond\",\"type\":\"uint256\"}],\"name\":\"updateMinimumBond\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodeOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextSlasher\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isPendingDeregistration\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getPreviousDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumEpochInterval\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumEpochInterval\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_prover\",\"type\":\"address\"},{\"name\":\"_challenger1\",\"type\":\"address\"},{\"name\":\"_challenger2\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRefundable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"previousEpoch\",\"outputs\":[{\"name\":\"epochhash\",\"type\":\"uint256\"},{\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumEpochInterval\",\"type\":\"uint256\"}],\"name\":\"updateMinimumEpochInterval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumPodSize\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodesPreviousEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"name\":\"epochhash\",\"type\":\"uint256\"},{\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRegisteredInPreviousEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isDeregistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumPodSize\",\"type\":\"uint256\"}],\"name\":\"updateMinimumPodSize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"deregister\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodePublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ren\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"epoch\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"store\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_slasher\",\"type\":\"address\"}],\"name\":\"updateSlasher\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodeBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPodSize\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isDeregisterable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"refund\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRefunded\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_renAddress\",\"type\":\"address\"},{\"name\":\"_storeAddress\",\"type\":\"address\"},{\"name\":\"_minimumBond\",\"type\":\"uint256\"},{\"name\":\"_minimumPodSize\",\"type\":\"uint256\"},{\"name\":\"_minimumEpochInterval\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknodeID\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_bond\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"LogDarknodeDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeOwnerRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"epochhash\",\"type\":\"uint256\"}],\"name\":\"LogNewEpoch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumBond\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumBond\",\"type\":\"uint256\"}],\"name\":\"LogMinimumBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumPodSize\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumPodSize\",\"type\":\"uint256\"}],\"name\":\"LogMinimumPodSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumEpochInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumEpochInterval\",\"type\":\"uint256\"}],\"name\":\"LogMinimumEpochIntervalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousSlasher\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"nextSlasher\",\"type\":\"address\"}],\"name\":\"LogSlasherUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_minimumBond\":\"The minimum bond amount that can be submitted by a Darknode.\",\"_minimumEpochInterval\":\"The minimum number of blocks between epochs.\",\"_minimumPodSize\":\"The minimum size of a Darknode pod.\",\"_renAddress\":\"The address of the RenToken contract.\",\"_storeAddress\":\"The address of the DarknodeRegistryStore contract.\"}},\"deregister(address)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be deregistered. The caller of this method store.darknodeRegisteredAt(_darknodeID) must be\"}},\"getDarknodeBond(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the bond for.\"}},\"getDarknodeOwner(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the owner for.\"}},\"getDarknodePublicKey(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the public key for.\"}},\"getDarknodes(address,uint256)\":{\"params\":{\"_count\":\"The number of darknodes to retrieve starting from _start. If _count is 0, all of the darknodes from _start are retrieved. If _count is more than the remaining number of registered darknodes, the rest of the list will contain 0x0s.\",\"_start\":\"A darknode ID used as an offset for the list. If _start is 0x0, the first dark node will be used. _start won't be included it is not registered for the epoch.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"isPendingRegistration(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to return\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"refund(address)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be refunded. The caller of this method must be the owner of this darknode.\"}},\"register(address,bytes)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be registered.\",\"_publicKey\":\"The public key of the darknode. It is stored to allow other darknodes and traders to encrypt messages to the trader.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"slash(address,address,address)\":{\"params\":{\"_challenger1\":\"The first of the two darknodes who submitted the challenge\",\"_challenger2\":\"The second of the two darknodes who submitted the challenge\",\"_prover\":\"The guilty prover whose bond is being slashed\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferStoreOwnership(address)\":{\"params\":{\"_newOwner\":\"The address to transfer the ownership to.\"}},\"updateMinimumBond(uint256)\":{\"params\":{\"_nextMinimumBond\":\"The minimum bond amount that can be submitted by a darknode.\"}},\"updateMinimumEpochInterval(uint256)\":{\"params\":{\"_nextMinimumEpochInterval\":\"The minimum number of blocks between epochs.\"}},\"updateMinimumPodSize(uint256)\":{\"params\":{\"_nextMinimumPodSize\":\"The minimum size of a pod.\"}},\"updateSlasher(address)\":{\"params\":{\"_slasher\":\"The new slasher address.\"}}}},\"userdoc\":{\"methods\":{\"claimStoreOwnership()\":{\"notice\":\"Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another Darknode Registry.\"},\"constructor\":\"The contract constructor. \",\"deregister(address)\":{\"notice\":\"Deregister a darknode. The darknode will not be deregistered until the end of the epoch. After another epoch, the bond can be refunded by calling the refund method.\"},\"epoch()\":{\"notice\":\"Progress the epoch if it is possible to do so. This captures the current timestamp and current blockhash and overrides the current epoch.\"},\"getDarknodeBond(address)\":{\"notice\":\"Retrieves the bond amount of a darknode in 10^-18 REN.\"},\"getDarknodeOwner(address)\":{\"notice\":\"Retrieves the address of the account that registered a darknode.\"},\"getDarknodePublicKey(address)\":{\"notice\":\"Retrieves the encryption public key of the darknode.\"},\"getDarknodes(address,uint256)\":{\"notice\":\"Retrieves a list of darknodes which are registered for the current epoch.\"},\"getPreviousDarknodes(address,uint256)\":{\"notice\":\"Retrieves a list of darknodes which were registered for the previous epoch. See `getDarknodes` for the parameter documentation.\"},\"isDeregisterable(address)\":{\"notice\":\"Returns if a darknode can be deregistered. This is true if the darknodes is in the registered state and has not attempted to deregister yet.\"},\"isDeregistered(address)\":{\"notice\":\"Returns if a darknode is in the deregistered state.\"},\"isPendingDeregistration(address)\":{\"notice\":\"Returns if a darknode is in the pending deregistered state. In this state a darknode is still considered registered.\"},\"isPendingRegistration(address)\":{\"notice\":\"Returns whether a darknode is scheduled to become registered at next epoch.\"},\"isRefundable(address)\":{\"notice\":\"Returns if a darknode is refundable. This is true for darknodes that have been in the deregistered state for one full epoch.\"},\"isRefunded(address)\":{\"notice\":\"Returns if a darknode is in the refunded state. This is true for darknodes that have never been registered, or darknodes that have been deregistered and refunded.\"},\"isRegistered(address)\":{\"notice\":\"Returns if a darknode is in the registered state.\"},\"isRegisteredInPreviousEpoch(address)\":{\"notice\":\"Returns if a darknode was in the registered state last epoch.\"},\"refund(address)\":{\"notice\":\"Refund the bond of a deregistered darknode. This will make the darknode available for registration again. Anyone can call this function but the bond will always be refunded to the darknode owner. \"},\"register(address,bytes)\":{\"notice\":\"Register a darknode and transfer the bond to this contract. Before registering, the bond transfer must be approved in the REN contract. The caller must provide a public encryption key for the darknode. The darknode will remain pending registration until the next epoch. Only after this period can the darknode be deregistered. The caller of this method will be stored as the owner of the darknode. \"},\"slash(address,address,address)\":{\"notice\":\"Allow the DarknodeSlasher contract to slash half of a darknode's bond and deregister it. The bond is distributed as follows: 1/2 is kept by the guilty prover 1/8 is rewarded to the first challenger 1/8 is rewarded to the second challenger 1/4 becomes unassigned\"},\"transferStoreOwnership(address)\":{\"notice\":\"Allows the contract owner to initiate an ownership transfer of the DarknodeRegistryStore. \"},\"updateMinimumBond(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum bond.\"},\"updateMinimumEpochInterval(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum epoch interval.\"},\"updateMinimumPodSize(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum pod size.\"},\"updateSlasher(address)\":{\"notice\":\"Allow the contract owner to update the DarknodeSlasher contract address.\"}},\"notice\":\"DarknodeRegistry is responsible for the registration and deregistration of Darknodes.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":\"DarknodeRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b506040516200296c3803806200296c833981018060405260c08110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505060208201516040808401516060850151608086015160a090960151600080546001600160a01b0319163317808255945196995094975091959094909391926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a385516200010490600190602089019062000188565b50601080546001600160a01b039586166001600160a01b031991821617909155600f805496909516951694909417909255600581905560085560068190556009556007819055600a555060408051808201909152436000198101408083526020909201819052600b91909155600c556000600281905560038190556004556200022d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001cb57805160ff1916838001178555620001fb565b82800160010185558215620001fb579182015b82811115620001fb578251825591602001919060010190620001de565b50620002099291506200020d565b5090565b6200022a91905b8082111562000209576000815560010162000214565b90565b61272f806200023d6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80638020fc1f11610151578063b3139d38116100c3578063e187892511610087578063e18789251461073e578063ec5325c114610764578063f2fde38b14610790578063fa89401a146107b6578063ffa1ad74146107dc578063ffc9152e146107e457610274565b8063b3139d381461069e578063ba0f5b20146106c4578063c2250a99146106ea578063c3c5a54714610710578063c7dbc2be1461073657610274565b80638da5cb5b116101155780638da5cb5b1461066e5780638f32d59b14610676578063900cf0cf1461067e578063975057e714610686578063aa7517e11461068e578063b13442711461069657610274565b80638020fc1f1461056257806380a0c4611461058857806384ac33ec146105a557806384d2688c146105cb5780638a9b40671461066657610274565b8063563bf264116101ea5780636fd689e8116101ae5780636fd689e814610514578063702c25ee1461051c578063715018a61461052457806371740d161461052c57806376671808146105345780637be266da1461053c57610274565b8063563bf264146104705780635aebd1cb146104a85780635cdaab48146104ce57806360a22fe4146104ef57806363b851b9146104f757610274565b806321a2ad3a1161023c57806321a2ad3a1461033657806324b8fbf61461033e578063303ee989146103be57806343846074146103e4578063455dc46d1461046057806355cacda51461046857610274565b8063040fa051146102795780630847e9fa146102b35780630ff9aafe146102cd5780631460e603146102ec5780631cedf8a3146102f4575b600080fd5b61029f6004803603602081101561028f57600080fd5b50356001600160a01b031661080a565b604080519115158252519081900360200190f35b6102bb6108a1565b60408051918252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b50356108a7565b005b6102bb6108f6565b61031a6004803603602081101561030a57600080fd5b50356001600160a01b03166108fc565b604080516001600160a01b039092168252519081900360200190f35b61031a610982565b6102ea6004803603604081101561035457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b509092509050610991565b61029f600480360360208110156103d457600080fd5b50356001600160a01b0316610c12565b610410600480360360408110156103fa57600080fd5b506001600160a01b038135169060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044c578181015183820152602001610434565b505050509050019250505060405180910390f35b6102bb610c84565b6102bb610c8a565b6102ea6004803603606081101561048657600080fd5b506001600160a01b038135811691602081013582169160409091013516610c90565b61029f600480360360208110156104be57600080fd5b50356001600160a01b03166110b6565b6104d661114f565b6040805192835260208301919091528051918290030190f35b6102bb611158565b6102ea6004803603602081101561050d57600080fd5b503561115e565b6102ea6111ad565b6102bb611261565b6102ea611267565b6102bb6112fb565b6104d6611301565b61029f6004803603602081101561055257600080fd5b50356001600160a01b031661130a565b61029f6004803603602081101561057857600080fd5b50356001600160a01b031661132f565b6102ea6004803603602081101561059e57600080fd5b50356113c3565b6102ea600480360360208110156105bb57600080fd5b50356001600160a01b0316611412565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316611559565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561062b578181015183820152602001610613565b50505050905090810190601f1680156106585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a61163b565b61031a61164a565b61029f611659565b6102ea61166a565b61031a61191d565b6102bb61192c565b61031a611932565b6102ea600480360360208110156106b457600080fd5b50356001600160a01b0316611941565b6102bb600480360360208110156106da57600080fd5b50356001600160a01b0316611a0b565b6102ea6004803603602081101561070057600080fd5b50356001600160a01b0316611a5f565b61029f6004803603602081101561072657600080fd5b50356001600160a01b0316611b0e565b6102bb611b33565b61029f6004803603602081101561075457600080fd5b50356001600160a01b0316611b39565b6104106004803603604081101561077a57600080fd5b506001600160a01b038135169060200135611bcf565b6102ea600480360360208110156107a657600080fd5b50356001600160a01b0316611be8565b6102ea600480360360208110156107cc57600080fd5b50356001600160a01b0316611c3e565b6105f1611f11565b61029f600480360360208110156107fa57600080fd5b50356001600160a01b0316611f9e565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d602081101561088657600080fd5b50519050801580159061089a5750600c5481115b9392505050565b60035481565b6108af611659565b6108f15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600855565b60025481565b60105460408051600160e01b63a30788150281526001600160a01b0384811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b15801561095057600080fd5b505afa158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b505192915050565b6012546001600160a01b031681565b8261099b81611f9e565b6109d957604051600160e51b62461bcd02815260040180806020018281038252602481526020018061266f6024913960400191505060405180910390fd5b600554600f5460105460408051600160e01b6323b872dd0281523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3e57600080fd5b505af1158015610a52573d6000803e3d6000fd5b505050506040513d6020811015610a6857600080fd5b5051610abe5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b601054600754600c546001600160a01b039092169163a85ef579918891339186918a918a91610af29163ffffffff6120b016565b60006040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001868152602001806020018481526020018381526020018281038252868682818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b5050600354610bc992509050600163ffffffff6120b016565b6003556040805182815290516001600160a01b038716917fd2819ba4c736158371edf0be38fd8d1fc435609832e392f118c4c79160e5bd7b919081900360200190a25050505050565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561085c57600080fd5b60608180610c7057506004545b610c7c8482600161210d565b949350505050565b600a5481565b60075481565b6011546001600160a01b03163314610cf25760408051600160e51b62461bcd02815260206004820152600f60248201527f6d75737420626520736c61736865720000000000000000000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63cad413570281526001600160a01b0386811660048301529151600093600293169163cad41357916024808301926020929190829003018186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d6020811015610d6f57600080fd5b505181610d7857fe5b049050600060048260105460408051600160e21b633ef100bf0281526001600160a01b038a81166004830152602482018890529151949093049450169163fbc402fc9160448082019260009290919082900301818387803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050610dfd85611b39565b15610e0b57610e0b85612348565b600f5460105460408051600160e01b63a30788150281526001600160a01b03888116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b505050506040513d6020811015610f0757600080fd5b5051610f5d5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b600f5460105460408051600160e01b63a30788150281526001600160a01b03878116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b505050506040513d602081101561105957600080fd5b50516110af5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b5050505050565b60006110c18261132f565b80156111495750600e5460105460408051600160e11b62c985b70281526001600160a01b038681166004830152915191909216916301930b6e916024808301926020929190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b505111155b92915050565b600d54600e5482565b60085481565b611166611659565b6111a85760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600a55565b6111b5611659565b6111f75760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b601060009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50505050565b60095481565b61126f611659565b6112b15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b600b54600c5482565b60408051808201909152600d548152600e54602082015260009061114990839061242a565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b50519050801580159061089a5750600c54101592915050565b6113cb611659565b61140d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600955565b8061141c81611b39565b6114705760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206465726567697374657261626c6500000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63a30788150281526001600160a01b038086166004830152915185933393169163a3078815916024808301926020929190829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50516001600160a01b03161461154b5760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b61155483612348565b505050565b60105460408051600160e41b630ee594a50281526001600160a01b0384811660048301529151606093929092169163ee594a5091602480820192600092909190829003018186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115ea57600080fd5b81019080805164010000000081111561160257600080fd5b8201602081018481111561161557600080fd5b815164010000000081118282018710171561162f57600080fd5b50909695505050505050565b600f546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600e546116e15761167961164a565b6001600160a01b0316336001600160a01b0316146116e15760408051600160e51b62461bcd02815260206004820152601d60248201527f6e6f7420617574686f72697a6564202866697273742065706f63687329000000604482015290519081900360640190fd5b600754600c546116f69163ffffffff6120b016565b43101561174d5760408051600160e51b62461bcd02815260206004820152601d60248201527f65706f636820696e74657276616c20686173206e6f7420706173736564000000604482015290519081900360640190fd5b600b8054600d55600c8054600e556040805180820190915243600019810140808352602090920181905292819055919055600280546004556003549055600554600854146117d957600854600581905560408051828152602081019290925280517f7c77c94944e9e4e5b0d46f1297127d060020792687cd743401d782346c68f6559281900390910190a15b6006546009541461182857600954600681905560408051828152602081019290925280517f6d520e46e5714982ddf8cb6216bcb3e1c1d5b79d337afc305335f819394f5d6a9281900390910190a15b600754600a541461187757600a54600781905560408051828152602081019290925280517fb218cde2730b79a0667ddf869466ee66a12ef56fe65fa4986a590f8a7108c9de9281900390910190a15b6011546012546001600160a01b039081169116146118ef57601254601180546001600160a01b0319166001600160a01b039283169081179182905560408051929093168252602082015281517f933228a1c3ba8fadd3ce47a9db5b898be647f89af99ba7c1b9a655f59ea306c8929181900390910190a15b60405181907faf2fc4796f2932ce294c3684deffe5098d3ef65dc2dd64efa80ef94eed88b01e90600090a250565b6010546001600160a01b031681565b60055481565b6011546001600160a01b031681565b611949611659565b61198b5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b6001600160a01b0381166119e95760408051600160e51b62461bcd02815260206004820152601760248201527f696e76616c696420736c61736865722061646472657373000000000000000000604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60105460408051600160e01b63cad413570281526001600160a01b0384811660048301529151600093929092169163cad4135791602480820192602092909190829003018186803b15801561095057600080fd5b611a67611659565b611aa95760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b60105460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015611afa57600080fd5b505af11580156110af573d6000803e3d6000fd5b60408051808201909152600b548152600c54602082015260009061114990839061242a565b60065481565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d6020811015611bb457600080fd5b50519050611bc183611b0e565b801561089a57501592915050565b60608180611bdc57506002545b610c7c8482600061210d565b611bf0611659565b611c325760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b611c3b8161256b565b50565b80611c48816110b6565b611c8657604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806126b9602b913960400191505060405180910390fd5b60105460408051600160e01b63a30788150281526001600160a01b0385811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b158015611cda57600080fd5b505afa158015611cee573d6000803e3d6000fd5b505050506040513d6020811015611d0457600080fd5b505160105460408051600160e01b63cad413570281526001600160a01b0387811660048301529151939450600093919092169163cad41357916024808301926020929190829003018186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b505160105460408051600160e11b6320da21c90281526001600160a01b03888116600483015291519394509116916341b443929160248082019260009290919082900301818387803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b5050600f5460408051600160e01b63a9059cbb0281526001600160a01b03878116600483015260248201879052915191909216935063a9059cbb925060448083019260209291908290030181600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b5051611ecc5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b6040805182815290516001600160a01b038416917f96ab9e56c79eee4a72db6e2879cbfbecdba5c65b411f4861824e66b89df19764919081900360200190a250505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611f965780601f10611f6b57610100808354040283529160200191611f96565b820191906000526020600020905b815481529060010190602001808311611f7957829003601f168201915b505050505081565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d602081101561201a57600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038781166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b15801561207157600080fd5b505afa158015612085573d6000803e3d6000fd5b505050506040513d602081101561209b57600080fd5b5051905081158015610c7c5750159392505050565b60008282018381101561089a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060828061211a57506002545b606081604051908082528060200260200182016040528015612146578160200160208202803883390190505b5090506000866001600160a01b0381166121d757601060009054906101000a90046001600160a01b03166001600160a01b0316631bce6ff36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b505190505b8382101561162f576001600160a01b0381166121f25761162f565b6000861561220a576122038261130a565b9050612216565b61221382611b0e565b90505b806122a05760105460408051600160e11b6355b9f18b0281526001600160a01b0385811660048301529151919092169163ab73e316916024808301926020929190829003018186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d602081101561229557600080fd5b505191506121d79050565b818484815181106122ad57fe5b6001600160a01b0392831660209182029290920181019190915260105460408051600160e11b6355b9f18b02815286851660048201529051919093169263ab73e316926024808301939192829003018186803b15801561230c57600080fd5b505afa158015612320573d6000803e3d6000fd5b505050506040513d602081101561233657600080fd5b50516001939093019291506121d79050565b601054600754600c546001600160a01b0390921691633ac39d4b9184916123749163ffffffff6120b016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50506003546123f092509050600163ffffffff61260e16565b6003556040516001600160a01b038216907f2dc89de5703d2c341a22ebfc7c4d3f197e5e1f0c19bc2e1135f387163cb927e490600090a250565b60105460408051600160e21b6338b5f1930281526001600160a01b03858116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d60208110156124a657600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038881166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d602081101561252757600080fd5b5051905060008215801590612540575084602001518311155b905060008215806125545750856020015183115b90508180156125605750805b979650505050505050565b6001600160a01b0381166125b357604051600160e51b62461bcd0281526004018080602001828103825260268152602001806126936026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156126685760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe6d75737420626520726566756e646564206f72206e6576657220726567697374657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f63684f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058208517b004b2026d01b1448d146ce097bb267c9649ace695b74d180d77473999a80029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102745760003560e01c80638020fc1f11610151578063b3139d38116100c3578063e187892511610087578063e18789251461073e578063ec5325c114610764578063f2fde38b14610790578063fa89401a146107b6578063ffa1ad74146107dc578063ffc9152e146107e457610274565b8063b3139d381461069e578063ba0f5b20146106c4578063c2250a99146106ea578063c3c5a54714610710578063c7dbc2be1461073657610274565b80638da5cb5b116101155780638da5cb5b1461066e5780638f32d59b14610676578063900cf0cf1461067e578063975057e714610686578063aa7517e11461068e578063b13442711461069657610274565b80638020fc1f1461056257806380a0c4611461058857806384ac33ec146105a557806384d2688c146105cb5780638a9b40671461066657610274565b8063563bf264116101ea5780636fd689e8116101ae5780636fd689e814610514578063702c25ee1461051c578063715018a61461052457806371740d161461052c57806376671808146105345780637be266da1461053c57610274565b8063563bf264146104705780635aebd1cb146104a85780635cdaab48146104ce57806360a22fe4146104ef57806363b851b9146104f757610274565b806321a2ad3a1161023c57806321a2ad3a1461033657806324b8fbf61461033e578063303ee989146103be57806343846074146103e4578063455dc46d1461046057806355cacda51461046857610274565b8063040fa051146102795780630847e9fa146102b35780630ff9aafe146102cd5780631460e603146102ec5780631cedf8a3146102f4575b600080fd5b61029f6004803603602081101561028f57600080fd5b50356001600160a01b031661080a565b604080519115158252519081900360200190f35b6102bb6108a1565b60408051918252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b50356108a7565b005b6102bb6108f6565b61031a6004803603602081101561030a57600080fd5b50356001600160a01b03166108fc565b604080516001600160a01b039092168252519081900360200190f35b61031a610982565b6102ea6004803603604081101561035457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b509092509050610991565b61029f600480360360208110156103d457600080fd5b50356001600160a01b0316610c12565b610410600480360360408110156103fa57600080fd5b506001600160a01b038135169060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044c578181015183820152602001610434565b505050509050019250505060405180910390f35b6102bb610c84565b6102bb610c8a565b6102ea6004803603606081101561048657600080fd5b506001600160a01b038135811691602081013582169160409091013516610c90565b61029f600480360360208110156104be57600080fd5b50356001600160a01b03166110b6565b6104d661114f565b6040805192835260208301919091528051918290030190f35b6102bb611158565b6102ea6004803603602081101561050d57600080fd5b503561115e565b6102ea6111ad565b6102bb611261565b6102ea611267565b6102bb6112fb565b6104d6611301565b61029f6004803603602081101561055257600080fd5b50356001600160a01b031661130a565b61029f6004803603602081101561057857600080fd5b50356001600160a01b031661132f565b6102ea6004803603602081101561059e57600080fd5b50356113c3565b6102ea600480360360208110156105bb57600080fd5b50356001600160a01b0316611412565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316611559565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561062b578181015183820152602001610613565b50505050905090810190601f1680156106585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a61163b565b61031a61164a565b61029f611659565b6102ea61166a565b61031a61191d565b6102bb61192c565b61031a611932565b6102ea600480360360208110156106b457600080fd5b50356001600160a01b0316611941565b6102bb600480360360208110156106da57600080fd5b50356001600160a01b0316611a0b565b6102ea6004803603602081101561070057600080fd5b50356001600160a01b0316611a5f565b61029f6004803603602081101561072657600080fd5b50356001600160a01b0316611b0e565b6102bb611b33565b61029f6004803603602081101561075457600080fd5b50356001600160a01b0316611b39565b6104106004803603604081101561077a57600080fd5b506001600160a01b038135169060200135611bcf565b6102ea600480360360208110156107a657600080fd5b50356001600160a01b0316611be8565b6102ea600480360360208110156107cc57600080fd5b50356001600160a01b0316611c3e565b6105f1611f11565b61029f600480360360208110156107fa57600080fd5b50356001600160a01b0316611f9e565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d602081101561088657600080fd5b50519050801580159061089a5750600c5481115b9392505050565b60035481565b6108af611659565b6108f15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600855565b60025481565b60105460408051600160e01b63a30788150281526001600160a01b0384811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b15801561095057600080fd5b505afa158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b505192915050565b6012546001600160a01b031681565b8261099b81611f9e565b6109d957604051600160e51b62461bcd02815260040180806020018281038252602481526020018061266f6024913960400191505060405180910390fd5b600554600f5460105460408051600160e01b6323b872dd0281523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3e57600080fd5b505af1158015610a52573d6000803e3d6000fd5b505050506040513d6020811015610a6857600080fd5b5051610abe5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b601054600754600c546001600160a01b039092169163a85ef579918891339186918a918a91610af29163ffffffff6120b016565b60006040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001868152602001806020018481526020018381526020018281038252868682818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b5050600354610bc992509050600163ffffffff6120b016565b6003556040805182815290516001600160a01b038716917fd2819ba4c736158371edf0be38fd8d1fc435609832e392f118c4c79160e5bd7b919081900360200190a25050505050565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561085c57600080fd5b60608180610c7057506004545b610c7c8482600161210d565b949350505050565b600a5481565b60075481565b6011546001600160a01b03163314610cf25760408051600160e51b62461bcd02815260206004820152600f60248201527f6d75737420626520736c61736865720000000000000000000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63cad413570281526001600160a01b0386811660048301529151600093600293169163cad41357916024808301926020929190829003018186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d6020811015610d6f57600080fd5b505181610d7857fe5b049050600060048260105460408051600160e21b633ef100bf0281526001600160a01b038a81166004830152602482018890529151949093049450169163fbc402fc9160448082019260009290919082900301818387803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050610dfd85611b39565b15610e0b57610e0b85612348565b600f5460105460408051600160e01b63a30788150281526001600160a01b03888116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b505050506040513d6020811015610f0757600080fd5b5051610f5d5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b600f5460105460408051600160e01b63a30788150281526001600160a01b03878116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b505050506040513d602081101561105957600080fd5b50516110af5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b5050505050565b60006110c18261132f565b80156111495750600e5460105460408051600160e11b62c985b70281526001600160a01b038681166004830152915191909216916301930b6e916024808301926020929190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b505111155b92915050565b600d54600e5482565b60085481565b611166611659565b6111a85760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600a55565b6111b5611659565b6111f75760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b601060009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50505050565b60095481565b61126f611659565b6112b15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b600b54600c5482565b60408051808201909152600d548152600e54602082015260009061114990839061242a565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b50519050801580159061089a5750600c54101592915050565b6113cb611659565b61140d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600955565b8061141c81611b39565b6114705760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206465726567697374657261626c6500000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63a30788150281526001600160a01b038086166004830152915185933393169163a3078815916024808301926020929190829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50516001600160a01b03161461154b5760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b61155483612348565b505050565b60105460408051600160e41b630ee594a50281526001600160a01b0384811660048301529151606093929092169163ee594a5091602480820192600092909190829003018186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115ea57600080fd5b81019080805164010000000081111561160257600080fd5b8201602081018481111561161557600080fd5b815164010000000081118282018710171561162f57600080fd5b50909695505050505050565b600f546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600e546116e15761167961164a565b6001600160a01b0316336001600160a01b0316146116e15760408051600160e51b62461bcd02815260206004820152601d60248201527f6e6f7420617574686f72697a6564202866697273742065706f63687329000000604482015290519081900360640190fd5b600754600c546116f69163ffffffff6120b016565b43101561174d5760408051600160e51b62461bcd02815260206004820152601d60248201527f65706f636820696e74657276616c20686173206e6f7420706173736564000000604482015290519081900360640190fd5b600b8054600d55600c8054600e556040805180820190915243600019810140808352602090920181905292819055919055600280546004556003549055600554600854146117d957600854600581905560408051828152602081019290925280517f7c77c94944e9e4e5b0d46f1297127d060020792687cd743401d782346c68f6559281900390910190a15b6006546009541461182857600954600681905560408051828152602081019290925280517f6d520e46e5714982ddf8cb6216bcb3e1c1d5b79d337afc305335f819394f5d6a9281900390910190a15b600754600a541461187757600a54600781905560408051828152602081019290925280517fb218cde2730b79a0667ddf869466ee66a12ef56fe65fa4986a590f8a7108c9de9281900390910190a15b6011546012546001600160a01b039081169116146118ef57601254601180546001600160a01b0319166001600160a01b039283169081179182905560408051929093168252602082015281517f933228a1c3ba8fadd3ce47a9db5b898be647f89af99ba7c1b9a655f59ea306c8929181900390910190a15b60405181907faf2fc4796f2932ce294c3684deffe5098d3ef65dc2dd64efa80ef94eed88b01e90600090a250565b6010546001600160a01b031681565b60055481565b6011546001600160a01b031681565b611949611659565b61198b5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b6001600160a01b0381166119e95760408051600160e51b62461bcd02815260206004820152601760248201527f696e76616c696420736c61736865722061646472657373000000000000000000604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60105460408051600160e01b63cad413570281526001600160a01b0384811660048301529151600093929092169163cad4135791602480820192602092909190829003018186803b15801561095057600080fd5b611a67611659565b611aa95760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b60105460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015611afa57600080fd5b505af11580156110af573d6000803e3d6000fd5b60408051808201909152600b548152600c54602082015260009061114990839061242a565b60065481565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d6020811015611bb457600080fd5b50519050611bc183611b0e565b801561089a57501592915050565b60608180611bdc57506002545b610c7c8482600061210d565b611bf0611659565b611c325760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b611c3b8161256b565b50565b80611c48816110b6565b611c8657604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806126b9602b913960400191505060405180910390fd5b60105460408051600160e01b63a30788150281526001600160a01b0385811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b158015611cda57600080fd5b505afa158015611cee573d6000803e3d6000fd5b505050506040513d6020811015611d0457600080fd5b505160105460408051600160e01b63cad413570281526001600160a01b0387811660048301529151939450600093919092169163cad41357916024808301926020929190829003018186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b505160105460408051600160e11b6320da21c90281526001600160a01b03888116600483015291519394509116916341b443929160248082019260009290919082900301818387803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b5050600f5460408051600160e01b63a9059cbb0281526001600160a01b03878116600483015260248201879052915191909216935063a9059cbb925060448083019260209291908290030181600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b5051611ecc5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b6040805182815290516001600160a01b038416917f96ab9e56c79eee4a72db6e2879cbfbecdba5c65b411f4861824e66b89df19764919081900360200190a250505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611f965780601f10611f6b57610100808354040283529160200191611f96565b820191906000526020600020905b815481529060010190602001808311611f7957829003601f168201915b505050505081565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d602081101561201a57600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038781166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b15801561207157600080fd5b505afa158015612085573d6000803e3d6000fd5b505050506040513d602081101561209b57600080fd5b5051905081158015610c7c5750159392505050565b60008282018381101561089a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060828061211a57506002545b606081604051908082528060200260200182016040528015612146578160200160208202803883390190505b5090506000866001600160a01b0381166121d757601060009054906101000a90046001600160a01b03166001600160a01b0316631bce6ff36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b505190505b8382101561162f576001600160a01b0381166121f25761162f565b6000861561220a576122038261130a565b9050612216565b61221382611b0e565b90505b806122a05760105460408051600160e11b6355b9f18b0281526001600160a01b0385811660048301529151919092169163ab73e316916024808301926020929190829003018186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d602081101561229557600080fd5b505191506121d79050565b818484815181106122ad57fe5b6001600160a01b0392831660209182029290920181019190915260105460408051600160e11b6355b9f18b02815286851660048201529051919093169263ab73e316926024808301939192829003018186803b15801561230c57600080fd5b505afa158015612320573d6000803e3d6000fd5b505050506040513d602081101561233657600080fd5b50516001939093019291506121d79050565b601054600754600c546001600160a01b0390921691633ac39d4b9184916123749163ffffffff6120b016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50506003546123f092509050600163ffffffff61260e16565b6003556040516001600160a01b038216907f2dc89de5703d2c341a22ebfc7c4d3f197e5e1f0c19bc2e1135f387163cb927e490600090a250565b60105460408051600160e21b6338b5f1930281526001600160a01b03858116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d60208110156124a657600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038881166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d602081101561252757600080fd5b5051905060008215801590612540575084602001518311155b905060008215806125545750856020015183115b90508180156125605750805b979650505050505050565b6001600160a01b0381166125b357604051600160e51b62461bcd0281526004018080602001828103825260268152602001806126936026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156126685760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe6d75737420626520726566756e646564206f72206e6576657220726567697374657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f63684f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058208517b004b2026d01b1448d146ce097bb267c9649ace695b74d180d77473999a80029", - "sourceMap": "375:21260:3:-;;;4707:847;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:847:3;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4707:847:3;;;;;;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;;4707:847:3;;;;;;;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;4707:847:3;;-1:-1:-1;4707:847:3;;-1:-1:-1;4707:847:3;;;;;;;;-1:-1:-1;;;;;724:6:36;;657;691:40;;657:6;;691:40;4951:18:3;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;4980:5:3;:21;;-1:-1:-1;;;;;4980:21:3;;;-1:-1:-1;;;;;;4980:21:3;;;;;;;5011:3;:17;;;;;;;;;;;;;;;5039:11;:26;;;5075:15;:29;5115:14;:32;;;-1:-1:-1;5157:35:3;-1:-1:-1;5203:44:3;;;-1:-1:-1;5257:47:3;-1:-1:-1;5330:117:3;;;;;;;;;5379:12;-1:-1:-1;;5379:16:3;;5369:27;5330:117;;;;;;;;;;-1:-1:-1;5315:132:3;;;;;;4980:5;-1:-1:-1;5457:16:3;;;-1:-1:-1;5483:25:3;;;-1:-1:-1;5518:29:3;375:21260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;375:21260:3;;;-1:-1:-1;375:21260:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "375:21260:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;375:21260:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16131:237;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16131:237:3;-1:-1:-1;;;;;16131:237:3;;:::i;:::-;;;;;;;;;;;;;;;;;;859:36;;;:::i;:::-;;;;;;;;;;;;;;;;10227:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10227:161:3;;:::i;:::-;;826:27;;;:::i;13895:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13895:143:3;-1:-1:-1;;;;;13895:143:3;;:::i;:::-;;;;-1:-1:-1;;;;;13895:143:3;;;;;;;;;;;;;;1798:34;;;:::i;6248:739::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;6248:739:3;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6248:739:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6248:739:3;;;;;;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;-1:-1;6248:739:3;;-1:-1:-1;6248:739:3;-1:-1:-1;6248:739:3;:::i;16515:247::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16515:247:3;-1:-1:-1;;;;;16515:247:3;;:::i;15680:285::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15680:285:3;;;;;;;;:::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;15680:285:3;;;;;;;;;;;;;;;;;1345:39;;;:::i;1064:35::-;;;:::i;11984:812::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11984:812:3;;;;;;;;;;;;;;;;;;;:::i;18266:195::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18266:195:3;-1:-1:-1;;;;;18266:195:3;;:::i;1461:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1270:30;;;:::i;10875:197::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10875:197:3;;:::i;9954:89::-;;;:::i;1306:33::-;;;:::i;1599:137:36:-;;;:::i;901:40:3:-;;;:::i;1430:25::-;;;:::i;18757:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18757:156:3;-1:-1:-1;;;;;18757:156:3;;:::i;16836:237::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16836:237:3;-1:-1:-1;;;;;16836:237:3;;:::i;10530:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10530:173:3;;:::i;7392:161::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7392:161:3;-1:-1:-1;;;;;7392:161:3;;:::i;14481:148::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14481:148:3;-1:-1:-1;;;;;14481:148:3;;:::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;14481:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1556:19;;;:::i;814:77:36:-;;;:::i;1165:90::-;;;:::i;7729:1710:3:-;;;:::i;1653:34::-;;;:::i;997:26::-;;;:::i;1762:30::-;;;:::i;11224:184::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11224:184:3;-1:-1:-1;;;;;11224:184:3;;:::i;14191:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14191:133:3;-1:-1:-1;;;;;14191:133:3;;:::i;9627:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9627:121:3;-1:-1:-1;;;;;9627:121:3;;:::i;18533:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18533:140:3;-1:-1:-1;;;;;18533:140:3;;:::i;1029:29::-;;;:::i;17252:378::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17252:378:3;-1:-1:-1;;;;;17252:378:3;;:::i;15257:265::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15257:265:3;;;;;;;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;13181:550:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13181:550:3;-1:-1:-1;;;;;13181:550:3;;:::i;451:21::-;;;:::i;17831:280::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17831:280:3;-1:-1:-1;;;;;17831:280:3;;:::i;16131:237::-;16245:5;;:39;;;-1:-1:-1;;;;;16245:39:3;;-1:-1:-1;;;;;16245:39:3;;;;;;;;;16206:4;;;;16245:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;16245:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16245:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16245:39:3;;-1:-1:-1;16301:17:3;;;;;:60;;-1:-1:-1;16337:24:3;;16322:39;;16301:60;16294:67;16131:237;-1:-1:-1;;;16131:237:3:o;859:36::-;;;;:::o;10227:161::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;10347:15:3;:34;10227:161::o;826:27::-;;;;:::o;13895:143::-;13999:5;;:32;;;-1:-1:-1;;;;;13999:32:3;;-1:-1:-1;;;;;13999:32:3;;;;;;;;;13965:15;;13999:5;;;;;:19;;:32;;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;13999:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13999:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13999:32:3;;13895:143;-1:-1:-1;;13895:143:3:o;1798:34::-;;;-1:-1:-1;;;;;1798:34:3;;:::o;6248:739::-;6336:11;3450:23;3461:11;3450:10;:23::i;:::-;3442:72;;;;-1:-1:-1;;;;;3442:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6438:11;;6502:3;;6539:5;;6502:50;;;-1:-1:-1;;;;;6502:50:3;;6519:10;6502:50;;;;-1:-1:-1;;;;;6539:5:3;;;6502:50;;;;;;;;;;;;:3;;;;;:16;;:50;;;;;;;;;;;;;;6423:12;6502:3;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;6502:50:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6502:50:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6502:50:3;6494:83;;;;;-1:-1:-1;;;;;6494:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6635:5;;6789:20;;6760:24;;-1:-1:-1;;;;;6635:5:3;;;;:20;;6669:11;;6694:10;;6718:4;;6736:10;;;;6760:50;;;:28;:50;:::i;:::-;6824:1;6635:200;;;;;;;;;;;;;-1:-1:-1;;;;;6635:200:3;-1:-1:-1;;;;;6635:200:3;;;;;;-1:-1:-1;;;;;6635:200:3;-1:-1:-1;;;;;6635:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6635:200:3;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6635:200:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6870:21:3;;:28;;-1:-1:-1;6870:21:3;-1:-1:-1;6896:1:3;6870:28;:25;:28;:::i;:::-;6846:21;:52;6940:40;;;;;;;;-1:-1:-1;;;;;6940:40:3;;;;;;;;;;;;;3524:1;6248:739;;;;:::o;16515:247::-;16633:5;;:41;;;-1:-1:-1;;;;;16633:41:3;;-1:-1:-1;;;;;16633:41:3;;;;;;;;;16592:4;;;;16633:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;15680:285:3;15765:16;15809:6;15829:10;15825:74;;-1:-1:-1;15863:25:3;;15825:74;15915:43;15938:6;15946:5;15953:4;15915:22;:43::i;:::-;15908:50;15680:285;-1:-1:-1;;;;15680:285:3:o;1345:39::-;;;;:::o;1064:35::-;;;;:::o;11984:812::-;4114:7;;-1:-1:-1;;;;;4114:7:3;4126:10;4106:30;4098:58;;;;;-1:-1:-1;;;;;4098:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12129:5;;:27;;;-1:-1:-1;;;;;12129:27:3;;-1:-1:-1;;;;;12129:27:3;;;;;;;;;12111:15;;12159:1;;12129:5;;:18;;:27;;;;;;;;;;;;;;:5;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12129:27:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12129:27:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12129:27:3;:31;;;;;;;-1:-1:-1;12170:14:3;12197:1;12129:31;12264:5;;:42;;;-1:-1:-1;;;;;12264:42:3;;-1:-1:-1;;;;;12264:42:3;;;;;;;;;;;;;;;12187:11;;;;;-1:-1:-1;12264:5:3;;:24;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;12264:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12264:42:3;;;;12393:25;12410:7;12393:16;:25::i;:::-;12389:83;;;12434:27;12453:7;12434:18;:27::i;:::-;12607:3;;12620:5;;:33;;;-1:-1:-1;;;;;12620:33:3;;-1:-1:-1;;;;;12620:33:3;;;;;;;;;12607:3;;;;:12;;12620:5;;;;:19;;:33;;;;;;;;;;;;;;;:5;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12620:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12620:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12620:33:3;12607:55;;;;;;;;;;-1:-1:-1;;;;;12607:55:3;;;;;;;;;;;;;;;;;;;12620:33;;12607:55;;;;;;;-1:-1:-1;12607:55:3;;;;5:2:-1;;;;30:1;27;20:12;5:2;12607:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12607:55:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12607:55:3;12599:90;;;;;-1:-1:-1;;;;;12599:90:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12707:3;;12720:5;;:33;;;-1:-1:-1;;;;;12720:33:3;;-1:-1:-1;;;;;12720:33:3;;;;;;;;;12707:3;;;;:12;;12720:5;;;;:19;;:33;;;;;;;;;;;;;;;:5;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12720:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12720:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12720:33:3;12707:55;;;;;;;;;;-1:-1:-1;;;;;12707:55:3;;;;;;;;;;;;;;;;;;;12720:33;;12707:55;;;;;;;-1:-1:-1;12707:55:3;;;;5:2:-1;;;;30:1;27;20:12;5:2;12707:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12707:55:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12707:55:3;12699:90;;;;;-1:-1:-1;;;;;12699:90:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:1;;11984:812;;;:::o;18266:195::-;18330:4;18353:27;18368:11;18353:14;:27::i;:::-;:101;;;;-1:-1:-1;18429:25:3;;18384:5;;:41;;;-1:-1:-1;;;;;18384:41:3;;-1:-1:-1;;;;;18384:41:3;;;;;;;;;:5;;;;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;18384:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18384:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18384:41:3;:70;;18353:101;18346:108;18266:195;-1:-1:-1;;18266:195:3:o;1461:26::-;;;;;;:::o;1270:30::-;;;;:::o;10875:197::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;11013:24:3;:52;10875:197::o;9954:89::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;10014:5:3;;;;;;;;;-1:-1:-1;;;;;10014:5:3;-1:-1:-1;;;;;10014:20:3;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10014:22:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10014:22:3;;;;9954:89::o;1306:33::-;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;901:40:3:-;;;;:::o;1430:25::-;;;;;;:::o;18757:156::-;18859:47;;;;;;;;;18892:13;18859:47;;;;;;;;;18836:4;;18859:47;;18879:11;;18859:19;:47::i;16836:237::-;16943:5;;:41;;;-1:-1:-1;;;;;16943:41:3;;-1:-1:-1;;;;;16943:41:3;;;;;;;;;16902:4;;;;16943:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;16943:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16943:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16943:41:3;;-1:-1:-1;17001:19:3;;;;;:65;;-1:-1:-1;17042:24:3;;-1:-1:-1;17024:42:3;;16836:237;-1:-1:-1;;16836:237:3:o;10530:173::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;10656:18:3;:40;10530:173::o;7392:161::-;7461:11;3924:29;3941:11;3924:16;:29::i;:::-;3916:64;;;;;-1:-1:-1;;;;;3916:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3229:5;;:32;;;-1:-1:-1;;;;;3229:32:3;;-1:-1:-1;;;;;3229:32:3;;;;;;;;;7492:11;;3265:10;;3229:5;;:19;;:32;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3229:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3229:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3229:32:3;-1:-1:-1;;;;;3229:46:3;;3221:81;;;;;-1:-1:-1;;;;;3221:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:31;7534:11;7515:18;:31::i;:::-;3990:1;7392:161;;:::o;14481:148::-;14586:5;;:36;;;-1:-1:-1;;;;;14586:36:3;;-1:-1:-1;;;;;14586:36:3;;;;;;;;;14555:12;;14586:5;;;;;:23;;:36;;;;;:5;;:36;;;;;;;;:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;14586:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14586:36:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14586:36:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;14586:36:3;;;;;;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;14586:36:3;;14481:148;-1:-1:-1;;;;;;14481:148:3:o;1556:19::-;;;-1:-1:-1;;;;;1556:19:3;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;7729:1710:3:-;7769:25;;7765:199;;7912:7;:5;:7::i;:::-;-1:-1:-1;;;;;7898:21:3;:10;-1:-1:-1;;;;;7898:21:3;;7890:63;;;;;-1:-1:-1;;;;;7890:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8081:20;;8052:24;;:50;;;:28;:50;:::i;:::-;8036:12;:66;;8028:108;;;;;-1:-1:-1;;;;;8028:108:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8276:12;8260:28;;:13;:28;;;;;;8313:90;;;;;;;;;8184:12;-1:-1:-1;;8184:16:3;;8174:27;8313:90;;;;;;;;;;8298:105;;;;;;;-1:-1:-1;8485:12:3;;8457:25;:40;-1:-1:-1;8522:21:3;8507:36;;8652:11;;-1:-1:-1;8633:15:3;:30;8629:160;;8693:15;;8679:11;:29;;;8727:51;;;;;;;;;;;;;;;;;;;;;;;;;8629:160;8824:14;;8802:18;;:36;8798:181;;8871:18;;8854:14;:35;;;8908:60;;;;;;;;;;;;;;;;;;;;;;;;;8798:181;9020:20;;8992:24;;:48;8988:223;;9079:24;;9056:20;:47;;;9122:78;;;;;;;;;;;;;;;;;;;;;;;;;8988:223;9239:7;;9224:11;;-1:-1:-1;;;;;9224:11:3;;;9239:7;;9224:22;9220:150;;9272:11;;9262:7;:21;;-1:-1:-1;;;;;;9262:21:3;-1:-1:-1;;;;;9272:11:3;;;9262:21;;;;;;;9302:57;;;9328:7;;;;9302:57;;;;;;;;;;;;;;;;;;;9220:150;9410:22;;9422:9;;9410:22;;;;;7729:1710;:::o;1653:34::-;;;-1:-1:-1;;;;;1653:34:3;;:::o;997:26::-;;;;:::o;1762:30::-;;;-1:-1:-1;;;;;1762:30:3;;:::o;11224:184::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;11310:31:3;;11302:67;;;;;-1:-1:-1;;;;;11302:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;11379:11;:22;;-1:-1:-1;;;;;;11379:22:3;-1:-1:-1;;;;;11379:22:3;;;;;;;;;;11224:184::o;14191:133::-;14286:5;;:31;;;-1:-1:-1;;;;;14286:31:3;;-1:-1:-1;;;;;14286:31:3;;;;;;;;;14260:7;;14286:5;;;;;:18;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;9627:121:3;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;9707:5:3;;:34;;;-1:-1:-1;;;;;9707:34:3;;-1:-1:-1;;;;;9707:34:3;;;;;;;;;:5;;;;;:23;;:34;;;;;:5;;:34;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;9707:34:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;18533:140:3;18620:46;;;;;;;;;18653:12;18620:46;;;;;;;;;18597:4;;18620:46;;18640:11;;18620:19;:46::i;1029:29::-;;;;:::o;17252:378::-;17361:5;;:41;;;-1:-1:-1;;;;;17361:41:3;;-1:-1:-1;;;;;17361:41:3;;;;;;;;;17320:4;;;;17361:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;17361:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17361:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17361:41:3;;-1:-1:-1;17575:25:3;17588:11;17575:12;:25::i;:::-;:48;;;;-1:-1:-1;17604:19:3;;17252:378;-1:-1:-1;;17252:378:3:o;15257:265::-;15334:16;15378:6;15398:10;15394:61;;-1:-1:-1;15432:12:3;;15394:61;15471:44;15494:6;15502:5;15509;15471:22;:44::i;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;13181:550:3:-;13242:11;3662:25;3675:11;3662:12;:25::i;:::-;3654:81;;;;-1:-1:-1;;;;;3654:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13289:5;;:32;;;-1:-1:-1;;;;;13289:32:3;;-1:-1:-1;;;;;13289:32:3;;;;;;;;;13265:21;;13289:5;;;;;:19;;:32;;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;13289:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13289:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13289:32:3;13385:5;;:31;;;-1:-1:-1;;;;;13385:31:3;;-1:-1:-1;;;;;13385:31:3;;;;;;;;;13289:32;;-1:-1:-1;13368:14:3;;13385:5;;;;;:18;;:31;;;;;13289:32;;13385:31;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;13385:31:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13385:31:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13385:31:3;13475:5;;:33;;;-1:-1:-1;;;;;13475:33:3;;-1:-1:-1;;;;;13475:33:3;;;;;;;;;13385:31;;-1:-1:-1;13475:5:3;;;:20;;:33;;;;;:5;;:33;;;;;;;;:5;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;13475:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13575:3:3;;:35;;;-1:-1:-1;;;;;13575:35:3;;-1:-1:-1;;;;;13575:35:3;;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;13575:12:3;;-1:-1:-1;13575:35:3;;;;;;;;;;;;;;:3;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;13575:35:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13575:35:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13575:35:3;13567:68;;;;;-1:-1:-1;;;;;13567:68:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;13677:47;;;;;;;;-1:-1:-1;;;;;13677:47:3;;;;;;;;;;;;;3745:1;;13181:550;;:::o;451:21::-;;;;;;;;;;;;;;;-1:-1:-1;;451:21:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17831:280::-;17932:5;;:39;;;-1:-1:-1;;;;;17932:39:3;;-1:-1:-1;;;;;17932:39:3;;;;;;;;;17893:4;;;;17932:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;17932:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17932:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17932:39:3;18006:5;;:41;;;-1:-1:-1;;;;;18006:41:3;;-1:-1:-1;;;;;18006:41:3;;;;;;;;;17932:39;;-1:-1:-1;17981:22:3;;18006:5;;;;;:28;;:41;;;;;17932:39;;18006:41;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;18006:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18006:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18006:41:3;;-1:-1:-1;18064:17:3;;:40;;;;-1:-1:-1;18085:19:3;;18057:47;-1:-1:-1;;;17831:280:3:o;834:176:35:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;20042:1165:3;20152:16;20196:6;20216:10;20212:61;;-1:-1:-1;20250:12:3;;20212:61;20283:22;20322:5;20308:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;20308:20:3;-1:-1:-1;20283:45:3;-1:-1:-1;20388:9:3;20426:6;-1:-1:-1;;;;;20446:18:3;;20442:69;;20487:5;;;;;;;;;-1:-1:-1;;;;;20487:5:3;-1:-1:-1;;;;;20487:11:3;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20487:13:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20487:13:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20487:13:3;;-1:-1:-1;20442:69:3;20602:5;20598:1;:9;20591:588;;;-1:-1:-1;;;;;20627:18:3;;20623:62;;20665:5;;20623:62;20766:16;20800:17;20796:174;;;20851:33;20879:4;20851:27;:33::i;:::-;20837:47;;20796:174;;;20937:18;20950:4;20937:12;:18::i;:::-;20923:32;;20796:174;20988:11;20983:100;;21026:5;;:16;;;-1:-1:-1;;;;;21026:16:3;;-1:-1:-1;;;;;21026:16:3;;;;;;;;;:5;;;;;:10;;:16;;;;;;;;;;;;;;:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;21026:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21026:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21026:16:3;;-1:-1:-1;21060:8:3;;-1:-1:-1;21060:8:3;20983:100;21107:4;21096:5;21102:1;21096:8;;;;;;;;-1:-1:-1;;;;;21096:15:3;;;:8;;;;;;;;;;:15;;;;21132:5;;:16;;;-1:-1:-1;;;;;21132:16:3;;;;;;;;;;;:5;;;;;:10;;:16;;;;;21096:8;;21132:16;;;;;:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;21132:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21132:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21132:16:3;21167:1;21162:6;;;;;21132:16;-1:-1:-1;20591:588:3;;-1:-1:-1;20591:588:3;21273:360;21388:5;;21465:20;;21436:24;;-1:-1:-1;;;;;21388:5:3;;;;:34;;21423:11;;21436:50;;;:28;:50;:::i;:::-;21388:99;;;;;;;;;;;;;-1:-1:-1;;;;;21388:99:3;-1:-1:-1;;;;;21388:99:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21388:99:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21521:21:3;;:28;;-1:-1:-1;21521:21:3;-1:-1:-1;21547:1:3;21521:28;:25;:28;:::i;:::-;21497:21;:52;21590:36;;-1:-1:-1;;;;;21590:36:3;;;;;;;;21273:360;:::o;19119:608::-;19251:5;;:39;;;-1:-1:-1;;;;;19251:39:3;;-1:-1:-1;;;;;19251:39:3;;;;;;;;;19212:4;;;;19251:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;19251:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19251:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19251:39:3;19325:5;;:41;;;-1:-1:-1;;;;;19325:41:3;;-1:-1:-1;;;;;19325:41:3;;;;;;;;;19251:39;;-1:-1:-1;19300:22:3;;19325:5;;;;;:28;;:41;;;;;19251:39;;19325:41;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;19325:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19325:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19325:41:3;;-1:-1:-1;19376:15:3;19394:17;;;;;:55;;;19431:6;:18;;;19415:12;:34;;19394:55;19376:73;-1:-1:-1;19459:20:3;19482:19;;;:58;;;19522:6;:18;;;19505:14;:35;19482:58;19459:81;;19691:10;:29;;;;;19705:15;19691:29;19684:36;19119:608;-1:-1:-1;;;;;;;19119:608:3:o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../RenToken/RenToken.sol\";\nimport \"../DarknodeSlasher/DarknodeSlasher.sol\";\nimport \"./DarknodeRegistryStore.sol\";\n\n/// @notice DarknodeRegistry is responsible for the registration and\n/// deregistration of Darknodes.\ncontract DarknodeRegistry is Ownable {\n using SafeMath for uint256;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice Darknode pods are shuffled after a fixed number of blocks.\n /// An Epoch stores an epoch hash used as an (insecure) RNG seed, and the\n /// blocknumber which restricts when the next epoch can be called.\n struct Epoch {\n uint256 epochhash;\n uint256 blocknumber;\n }\n\n uint256 public numDarknodes;\n uint256 public numDarknodesNextEpoch;\n uint256 public numDarknodesPreviousEpoch;\n\n /// Variables used to parameterize behavior.\n uint256 public minimumBond;\n uint256 public minimumPodSize;\n uint256 public minimumEpochInterval;\n\n /// When one of the above variables is modified, it is only updated when the\n /// next epoch is called. These variables store the values for the next epoch.\n uint256 public nextMinimumBond;\n uint256 public nextMinimumPodSize;\n uint256 public nextMinimumEpochInterval;\n\n /// The current and previous epoch\n Epoch public currentEpoch;\n Epoch public previousEpoch;\n\n /// Republic ERC20 token contract used to transfer bonds.\n RenToken public ren;\n\n /// Darknode Registry Store is the storage contract for darknodes.\n DarknodeRegistryStore public store;\n\n /// Darknode Slasher allows darknodes to vote on bond slashing.\n DarknodeSlasher public slasher;\n DarknodeSlasher public nextSlasher;\n\n /// @notice Emitted when a darknode is registered.\n /// @param _darknodeID The darknode ID that was registered.\n /// @param _bond The amount of REN that was transferred as bond.\n event LogDarknodeRegistered(address indexed _darknodeID, uint256 _bond);\n\n /// @notice Emitted when a darknode is deregistered.\n /// @param _darknodeID The darknode ID that was deregistered.\n event LogDarknodeDeregistered(address indexed _darknodeID);\n\n /// @notice Emitted when a refund has been made.\n /// @param _owner The address that was refunded.\n /// @param _amount The amount of REN that was refunded.\n event LogDarknodeOwnerRefunded(address indexed _owner, uint256 _amount);\n\n /// @notice Emitted when a new epoch has begun.\n event LogNewEpoch(uint256 indexed epochhash);\n\n /// @notice Emitted when a constructor parameter has been updated.\n event LogMinimumBondUpdated(uint256 previousMinimumBond, uint256 nextMinimumBond);\n event LogMinimumPodSizeUpdated(uint256 previousMinimumPodSize, uint256 nextMinimumPodSize);\n event LogMinimumEpochIntervalUpdated(uint256 previousMinimumEpochInterval, uint256 nextMinimumEpochInterval);\n event LogSlasherUpdated(address previousSlasher, address nextSlasher);\n\n /// @notice Restrict a function to the owner that registered the darknode.\n modifier onlyDarknodeOwner(address _darknodeID) {\n require(store.darknodeOwner(_darknodeID) == msg.sender, \"must be darknode owner\");\n _;\n }\n\n /// @notice Restrict a function to unregistered darknodes.\n modifier onlyRefunded(address _darknodeID) {\n require(isRefunded(_darknodeID), \"must be refunded or never registered\");\n _;\n }\n\n /// @notice Restrict a function to refundable darknodes.\n modifier onlyRefundable(address _darknodeID) {\n require(isRefundable(_darknodeID), \"must be deregistered for at least one epoch\");\n _;\n }\n\n /// @notice Restrict a function to registered nodes without a pending\n /// deregistration.\n modifier onlyDeregisterable(address _darknodeID) {\n require(isDeregisterable(_darknodeID), \"must be deregisterable\");\n _;\n }\n\n /// @notice Restrict a function to the Slasher contract.\n modifier onlySlasher() {\n require(address(slasher) == msg.sender, \"must be slasher\");\n _;\n }\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _renAddress The address of the RenToken contract.\n /// @param _storeAddress The address of the DarknodeRegistryStore contract.\n /// @param _minimumBond The minimum bond amount that can be submitted by a\n /// Darknode.\n /// @param _minimumPodSize The minimum size of a Darknode pod.\n /// @param _minimumEpochInterval The minimum number of blocks between\n /// epochs.\n constructor(\n string memory _VERSION,\n RenToken _renAddress,\n DarknodeRegistryStore _storeAddress,\n uint256 _minimumBond,\n uint256 _minimumPodSize,\n uint256 _minimumEpochInterval\n ) public {\n VERSION = _VERSION;\n\n store = _storeAddress;\n ren = _renAddress;\n\n minimumBond = _minimumBond;\n nextMinimumBond = minimumBond;\n\n minimumPodSize = _minimumPodSize;\n nextMinimumPodSize = minimumPodSize;\n\n minimumEpochInterval = _minimumEpochInterval;\n nextMinimumEpochInterval = minimumEpochInterval;\n\n currentEpoch = Epoch({\n epochhash: uint256(blockhash(block.number - 1)),\n blocknumber: block.number\n });\n numDarknodes = 0;\n numDarknodesNextEpoch = 0;\n numDarknodesPreviousEpoch = 0;\n }\n\n /// @notice Register a darknode and transfer the bond to this contract.\n /// Before registering, the bond transfer must be approved in the REN\n /// contract. The caller must provide a public encryption key for the\n /// darknode. The darknode will remain pending registration until the next\n /// epoch. Only after this period can the darknode be deregistered. The\n /// caller of this method will be stored as the owner of the darknode.\n ///\n /// @param _darknodeID The darknode ID that will be registered.\n /// @param _publicKey The public key of the darknode. It is stored to allow\n /// other darknodes and traders to encrypt messages to the trader.\n function register(address _darknodeID, bytes calldata _publicKey) external onlyRefunded(_darknodeID) {\n // Use the current minimum bond as the darknode's bond.\n uint256 bond = minimumBond;\n\n // Transfer bond to store\n require(ren.transferFrom(msg.sender, address(store), bond), \"bond transfer failed\");\n\n // Flag this darknode for registration\n store.appendDarknode(\n _darknodeID,\n msg.sender,\n bond,\n _publicKey,\n currentEpoch.blocknumber.add(minimumEpochInterval),\n 0\n );\n\n numDarknodesNextEpoch = numDarknodesNextEpoch.add(1);\n\n // Emit an event.\n emit LogDarknodeRegistered(_darknodeID, bond);\n }\n\n /// @notice Deregister a darknode. The darknode will not be deregistered\n /// until the end of the epoch. After another epoch, the bond can be\n /// refunded by calling the refund method.\n /// @param _darknodeID The darknode ID that will be deregistered. The caller\n /// of this method store.darknodeRegisteredAt(_darknodeID) must be\n // the owner of this darknode.\n function deregister(address _darknodeID) external onlyDeregisterable(_darknodeID) onlyDarknodeOwner(_darknodeID) {\n deregisterDarknode(_darknodeID);\n }\n\n /// @notice Progress the epoch if it is possible to do so. This captures\n /// the current timestamp and current blockhash and overrides the current\n /// epoch.\n function epoch() external {\n if (previousEpoch.blocknumber == 0) {\n // The first epoch must be called by the owner of the contract\n require(msg.sender == owner(), \"not authorized (first epochs)\");\n }\n\n // Require that the epoch interval has passed\n require(block.number >= currentEpoch.blocknumber.add(minimumEpochInterval), \"epoch interval has not passed\");\n uint256 epochhash = uint256(blockhash(block.number - 1));\n\n // Update the epoch hash and timestamp\n previousEpoch = currentEpoch;\n currentEpoch = Epoch({\n epochhash: epochhash,\n blocknumber: block.number\n });\n\n // Update the registry information\n numDarknodesPreviousEpoch = numDarknodes;\n numDarknodes = numDarknodesNextEpoch;\n\n // If any update functions have been called, update the values now\n if (nextMinimumBond != minimumBond) {\n minimumBond = nextMinimumBond;\n emit LogMinimumBondUpdated(minimumBond, nextMinimumBond);\n }\n if (nextMinimumPodSize != minimumPodSize) {\n minimumPodSize = nextMinimumPodSize;\n emit LogMinimumPodSizeUpdated(minimumPodSize, nextMinimumPodSize);\n }\n if (nextMinimumEpochInterval != minimumEpochInterval) {\n minimumEpochInterval = nextMinimumEpochInterval;\n emit LogMinimumEpochIntervalUpdated(minimumEpochInterval, nextMinimumEpochInterval);\n }\n if (nextSlasher != slasher) {\n slasher = nextSlasher;\n emit LogSlasherUpdated(address(slasher), address(nextSlasher));\n }\n\n // Emit an event\n emit LogNewEpoch(epochhash);\n }\n\n /// @notice Allows the contract owner to initiate an ownership transfer of\n /// the DarknodeRegistryStore. \n /// @param _newOwner The address to transfer the ownership to.\n function transferStoreOwnership(address _newOwner) external onlyOwner {\n store.transferOwnership(_newOwner);\n }\n\n /// @notice Claims ownership of the store passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called when\n /// transferring from another Darknode Registry.\n function claimStoreOwnership() external onlyOwner {\n store.claimOwnership();\n }\n\n /// @notice Allows the contract owner to update the minimum bond.\n /// @param _nextMinimumBond The minimum bond amount that can be submitted by\n /// a darknode.\n function updateMinimumBond(uint256 _nextMinimumBond) external onlyOwner {\n // Will be updated next epoch\n nextMinimumBond = _nextMinimumBond;\n }\n\n /// @notice Allows the contract owner to update the minimum pod size.\n /// @param _nextMinimumPodSize The minimum size of a pod.\n function updateMinimumPodSize(uint256 _nextMinimumPodSize) external onlyOwner {\n // Will be updated next epoch\n nextMinimumPodSize = _nextMinimumPodSize;\n }\n\n /// @notice Allows the contract owner to update the minimum epoch interval.\n /// @param _nextMinimumEpochInterval The minimum number of blocks between epochs.\n function updateMinimumEpochInterval(uint256 _nextMinimumEpochInterval) external onlyOwner {\n // Will be updated next epoch\n nextMinimumEpochInterval = _nextMinimumEpochInterval;\n }\n\n /// @notice Allow the contract owner to update the DarknodeSlasher contract\n /// address.\n /// @param _slasher The new slasher address.\n function updateSlasher(DarknodeSlasher _slasher) external onlyOwner {\n require(address(_slasher) != address(0), \"invalid slasher address\");\n nextSlasher = _slasher;\n }\n\n /// @notice Allow the DarknodeSlasher contract to slash half of a darknode's\n /// bond and deregister it. The bond is distributed as follows:\n /// 1/2 is kept by the guilty prover\n /// 1/8 is rewarded to the first challenger\n /// 1/8 is rewarded to the second challenger\n /// 1/4 becomes unassigned\n /// @param _prover The guilty prover whose bond is being slashed\n /// @param _challenger1 The first of the two darknodes who submitted the challenge\n /// @param _challenger2 The second of the two darknodes who submitted the challenge\n function slash(address _prover, address _challenger1, address _challenger2)\n external\n onlySlasher\n {\n uint256 penalty = store.darknodeBond(_prover) / 2;\n uint256 reward = penalty / 4;\n\n // Slash the bond of the failed prover in half\n store.updateDarknodeBond(_prover, penalty);\n\n // If the darknode has not been deregistered then deregister it\n if (isDeregisterable(_prover)) {\n deregisterDarknode(_prover);\n }\n\n // Reward the challengers with less than the penalty so that it is not\n // worth challenging yourself\n require(ren.transfer(store.darknodeOwner(_challenger1), reward), \"reward transfer failed\");\n require(ren.transfer(store.darknodeOwner(_challenger2), reward), \"reward transfer failed\");\n }\n\n /// @notice Refund the bond of a deregistered darknode. This will make the\n /// darknode available for registration again. Anyone can call this function\n /// but the bond will always be refunded to the darknode owner.\n ///\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n /// of this method must be the owner of this darknode.\n function refund(address _darknodeID) external onlyRefundable(_darknodeID) {\n address darknodeOwner = store.darknodeOwner(_darknodeID);\n\n // Remember the bond amount\n uint256 amount = store.darknodeBond(_darknodeID);\n\n // Erase the darknode from the registry\n store.removeDarknode(_darknodeID);\n\n // Refund the owner by transferring REN\n require(ren.transfer(darknodeOwner, amount), \"bond transfer failed\");\n\n // Emit an event.\n emit LogDarknodeOwnerRefunded(darknodeOwner, amount);\n }\n\n /// @notice Retrieves the address of the account that registered a darknode.\n /// @param _darknodeID The ID of the darknode to retrieve the owner for.\n function getDarknodeOwner(address _darknodeID) external view returns (address payable) {\n return store.darknodeOwner(_darknodeID);\n }\n\n /// @notice Retrieves the bond amount of a darknode in 10^-18 REN.\n /// @param _darknodeID The ID of the darknode to retrieve the bond for.\n function getDarknodeBond(address _darknodeID) external view returns (uint256) {\n return store.darknodeBond(_darknodeID);\n }\n\n /// @notice Retrieves the encryption public key of the darknode.\n /// @param _darknodeID The ID of the darknode to retrieve the public key for.\n function getDarknodePublicKey(address _darknodeID) external view returns (bytes memory) {\n return store.darknodePublicKey(_darknodeID);\n }\n\n /// @notice Retrieves a list of darknodes which are registered for the\n /// current epoch.\n /// @param _start A darknode ID used as an offset for the list. If _start is\n /// 0x0, the first dark node will be used. _start won't be\n /// included it is not registered for the epoch.\n /// @param _count The number of darknodes to retrieve starting from _start.\n /// If _count is 0, all of the darknodes from _start are\n /// retrieved. If _count is more than the remaining number of\n /// registered darknodes, the rest of the list will contain\n /// 0x0s.\n function getDarknodes(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodes;\n }\n return getDarknodesFromEpochs(_start, count, false);\n }\n\n /// @notice Retrieves a list of darknodes which were registered for the\n /// previous epoch. See `getDarknodes` for the parameter documentation.\n function getPreviousDarknodes(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodesPreviousEpoch;\n }\n return getDarknodesFromEpochs(_start, count, true);\n }\n\n /// @notice Returns whether a darknode is scheduled to become registered\n /// at next epoch.\n /// @param _darknodeID The ID of the darknode to return\n function isPendingRegistration(address _darknodeID) external view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n return registeredAt != 0 && registeredAt > currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the pending deregistered state. In\n /// this state a darknode is still considered registered.\n function isPendingDeregistration(address _darknodeID) external view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return deregisteredAt != 0 && deregisteredAt > currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the deregistered state.\n function isDeregistered(address _darknodeID) public view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return deregisteredAt != 0 && deregisteredAt <= currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode can be deregistered. This is true if the\n /// darknodes is in the registered state and has not attempted to\n /// deregister yet.\n function isDeregisterable(address _darknodeID) public view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n // The Darknode is currently in the registered state and has not been\n // transitioned to the pending deregistration, or deregistered, state\n return isRegistered(_darknodeID) && deregisteredAt == 0;\n }\n\n /// @notice Returns if a darknode is in the refunded state. This is true\n /// for darknodes that have never been registered, or darknodes that have\n /// been deregistered and refunded.\n function isRefunded(address _darknodeID) public view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return registeredAt == 0 && deregisteredAt == 0;\n }\n\n /// @notice Returns if a darknode is refundable. This is true for darknodes\n /// that have been in the deregistered state for one full epoch.\n function isRefundable(address _darknodeID) public view returns (bool) {\n return isDeregistered(_darknodeID) && store.darknodeDeregisteredAt(_darknodeID) <= previousEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the registered state.\n function isRegistered(address _darknodeID) public view returns (bool) {\n return isRegisteredInEpoch(_darknodeID, currentEpoch);\n }\n\n /// @notice Returns if a darknode was in the registered state last epoch.\n function isRegisteredInPreviousEpoch(address _darknodeID) public view returns (bool) {\n return isRegisteredInEpoch(_darknodeID, previousEpoch);\n }\n\n /// @notice Returns if a darknode was in the registered state for a given\n /// epoch.\n /// @param _darknodeID The ID of the darknode\n /// @param _epoch One of currentEpoch, previousEpoch\n function isRegisteredInEpoch(address _darknodeID, Epoch memory _epoch) private view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n bool registered = registeredAt != 0 && registeredAt <= _epoch.blocknumber;\n bool notDeregistered = deregisteredAt == 0 || deregisteredAt > _epoch.blocknumber;\n // The Darknode has been registered and has not yet been deregistered,\n // although it might be pending deregistration\n return registered && notDeregistered;\n }\n\n /// @notice Returns a list of darknodes registered for either the current\n /// or the previous epoch. See `getDarknodes` for documentation on the\n /// parameters `_start` and `_count`.\n /// @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n /// the current epoch.\n function getDarknodesFromEpochs(address _start, uint256 _count, bool _usePreviousEpoch) private view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodes;\n }\n\n address[] memory nodes = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = store.begin();\n }\n\n // Iterate until all registered Darknodes have been collected\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n // Only include Darknodes that are currently registered\n bool includeNext;\n if (_usePreviousEpoch) {\n includeNext = isRegisteredInPreviousEpoch(next);\n } else {\n includeNext = isRegistered(next);\n }\n if (!includeNext) {\n next = store.next(next);\n continue;\n }\n nodes[n] = next;\n next = store.next(next);\n n += 1;\n }\n return nodes;\n }\n\n /// Private function called by `deregister` and `slash`\n function deregisterDarknode(address _darknodeID) private {\n // Flag the darknode for deregistration\n store.updateDarknodeDeregisteredAt(_darknodeID, currentEpoch.blocknumber.add(minimumEpochInterval));\n numDarknodesNextEpoch = numDarknodesNextEpoch.sub(1);\n\n // Emit an event\n emit LogDarknodeDeregistered(_darknodeID);\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "exportedSymbols": { - "DarknodeRegistry": [ - 2390 - ] - }, - "id": 2391, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1289, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1290, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7471, - "src": "25:63:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1291, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7360, - "src": "89:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 1292, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2808, - "src": "150:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "file": "../DarknodeSlasher/DarknodeSlasher.sol", - "id": 1293, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2722, - "src": "185:48:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "file": "./DarknodeRegistryStore.sol", - "id": 1294, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2683, - "src": "234:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1295, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 1296, - "nodeType": "InheritanceSpecifier", - "src": "404:7:3" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeRegistry is responsible for the registration and\n deregistration of Darknodes.", - "fullyImplemented": true, - "id": 2390, - "linearizedBaseContracts": [ - 2390, - 7470 - ], - "name": "DarknodeRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1299, - "libraryName": { - "contractScope": null, - "id": 1297, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "424:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:3", - "typeName": { - "id": 1298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1301, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "451:21:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1300, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistry.Epoch", - "id": 1306, - "members": [ - { - "constant": false, - "id": 1303, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "767:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "767:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1305, - "name": "blocknumber", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "794:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Epoch", - "nodeType": "StructDefinition", - "scope": 2390, - "src": "744:76:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1308, - "name": "numDarknodes", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "826:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1310, - "name": "numDarknodesNextEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "859:36:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "859:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1312, - "name": "numDarknodesPreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "901:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1314, - "name": "minimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "997:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1316, - "name": "minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1029:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1318, - "name": "minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1064:35:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1320, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1270:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1322, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1306:33:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1324, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1345:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1326, - "name": "currentEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1430:25:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1325, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1430:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1328, - "name": "previousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1461:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1327, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1461:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1330, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1556:19:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1329, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "1556:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1332, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1653:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1331, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "1653:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1334, - "name": "slasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1762:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1333, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1336, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1798:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1335, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is registered.\n @param _darknodeID The darknode ID that was registered.\n @param _bond The amount of REN that was transferred as bond.", - "id": 1342, - "name": "LogDarknodeRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2055:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": false, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2084:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2054:44:3" - }, - "src": "2027:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is deregistered.\n @param _darknodeID The darknode ID that was deregistered.", - "id": 1346, - "name": "LogDarknodeDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2258:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2258:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:29:3" - }, - "src": "2228:59:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a refund has been made.\n @param _owner The address that was refunded.\n @param _amount The amount of REN that was refunded.", - "id": 1352, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1348, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2490:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2514:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2489:41:3" - }, - "src": "2459:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new epoch has begun.", - "id": 1356, - "name": "LogNewEpoch", - "nodeType": "EventDefinition", - "parameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1354, - "indexed": true, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "2607:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2607:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2606:27:3" - }, - "src": "2589:45:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a constructor parameter has been updated.", - "id": 1362, - "name": "LogMinimumBondUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "indexed": false, - "name": "previousMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2739:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2739:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "indexed": false, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2768:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2768:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2738:54:3" - }, - "src": "2711:82:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1368, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "indexed": false, - "name": "previousMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2829:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2829:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1366, - "indexed": false, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2861:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2828:60:3" - }, - "src": "2798:91:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1374, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1370, - "indexed": false, - "name": "previousMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2931:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "indexed": false, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2969:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2930:72:3" - }, - "src": "2894:109:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1380, - "name": "LogSlasherUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1376, - "indexed": false, - "name": "previousSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3032:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1378, - "indexed": false, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3057:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:46:3" - }, - "src": "3008:70:3" - }, - { - "body": { - "id": 1396, - "nodeType": "Block", - "src": "3211:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1387, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1382, - "src": "3249:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1385, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "3229:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "3229:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1389, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "3265:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3229:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206461726b6e6f6465206f776e6572", - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3277:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - }, - "value": "must be darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - } - ], - "id": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3221:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3221:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "3221:81:3" - }, - { - "id": 1395, - "nodeType": "PlaceholderStatement", - "src": "3312:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the owner that registered the darknode.", - "id": 1397, - "name": "onlyDarknodeOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1397, - "src": "3190:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3190:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3189:21:3" - }, - "src": "3163:157:3", - "visibility": "internal" - }, - { - "body": { - "id": 1409, - "nodeType": "Block", - "src": "3432:100:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1403, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1402, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "3450:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3450:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520726566756e646564206f72206e657665722072656769737465726564", - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - }, - "value": "must be refunded or never registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - } - ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3442:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3442:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "ExpressionStatement", - "src": "3442:72:3" - }, - { - "id": 1408, - "nodeType": "PlaceholderStatement", - "src": "3524:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to unregistered darknodes.", - "id": 1410, - "name": "onlyRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1410, - "src": "3411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3410:21:3" - }, - "src": "3389:143:3", - "visibility": "internal" - }, - { - "body": { - "id": 1422, - "nodeType": "Block", - "src": "3644:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1416, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1415, - "name": "isRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "3662:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f6368", - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3689:45:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - }, - "value": "must be deregistered for at least one epoch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - } - ], - "id": 1414, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3654:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "3654:81:3" - }, - { - "id": 1421, - "nodeType": "PlaceholderStatement", - "src": "3745:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to refundable darknodes.", - "id": 1423, - "name": "onlyRefundable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1412, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1423, - "src": "3623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3623:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:21:3" - }, - "src": "3599:154:3", - "visibility": "internal" - }, - { - "body": { - "id": 1435, - "nodeType": "Block", - "src": "3906:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1428, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "3924:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3924:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206465726567697374657261626c65", - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - }, - "value": "must be deregisterable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - } - ], - "id": 1427, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3916:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1433, - "nodeType": "ExpressionStatement", - "src": "3916:64:3" - }, - { - "id": 1434, - "nodeType": "PlaceholderStatement", - "src": "3990:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to registered nodes without a pending\n deregistration.", - "id": 1436, - "name": "onlyDeregisterable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1436, - "src": "3885:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3885:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3884:21:3" - }, - "src": "3857:141:3", - "visibility": "internal" - }, - { - "body": { - "id": 1449, - "nodeType": "Block", - "src": "4088:86:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "4114:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4106:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4106:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1442, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4126:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4126:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4106:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520736c6173686572", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4138:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - }, - "value": "must be slasher" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - } - ], - "id": 1438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4098:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4098:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "4098:58:3" - }, - { - "id": 1448, - "nodeType": "PlaceholderStatement", - "src": "4166:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the Slasher contract.", - "id": 1450, - "name": "onlySlasher", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "4085:2:3" - }, - "src": "4065:109:3", - "visibility": "internal" - }, - { - "body": { - "id": 1528, - "nodeType": "Block", - "src": "4941:613:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1465, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "4951:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1466, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "4961:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4951:18:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1468, - "nodeType": "ExpressionStatement", - "src": "4951:18:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "4980:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1470, - "name": "_storeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4988:13:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "src": "4980:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "4980:21:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1473, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5011:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1474, - "name": "_renAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1454, - "src": "5017:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "5011:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "5011:17:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "_minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "5053:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5039:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1480, - "nodeType": "ExpressionStatement", - "src": "5039:26:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "5075:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1482, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5093:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "5075:29:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5115:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1486, - "name": "_minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "5132:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1488, - "nodeType": "ExpressionStatement", - "src": "5115:32:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "5157:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1490, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5178:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5157:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1492, - "nodeType": "ExpressionStatement", - "src": "5157:35:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5203:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1494, - "name": "_minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "5226:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5203:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1496, - "nodeType": "ExpressionStatement", - "src": "5203:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "5257:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1498, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5284:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5257:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "5257:47:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "5315:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "5379:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5379:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1504, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "5369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "5424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5424:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1502, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "5330:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "5330:117:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "5315:132:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "5315:132:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "5457:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5472:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5457:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "5457:16:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1520, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5483:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5483:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "5483:25:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1524, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5518:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5518:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1527, - "nodeType": "ExpressionStatement", - "src": "5518:29:3" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _renAddress The address of the RenToken contract.\n @param _storeAddress The address of the DarknodeRegistryStore contract.\n @param _minimumBond The minimum bond amount that can be submitted by a\n Darknode.\n @param _minimumPodSize The minimum size of a Darknode pod.\n @param _minimumEpochInterval The minimum number of blocks between\n epochs.", - "id": 1529, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1452, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4728:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1451, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4728:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "name": "_renAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4760:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1453, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "4760:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "name": "_storeAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4790:35:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1455, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "4790:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_minimumBond", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4835:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4835:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "name": "_minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4865:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4898:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4898:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4718:215:3" - }, - "returnParameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "4941:0:3" - }, - "scope": 2390, - "src": "4707:847:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1584, - "nodeType": "Block", - "src": "6349:638:3", - "statements": [ - { - "assignments": [ - 1540 - ], - "declarations": [ - { - "constant": false, - "id": 1540, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 1584, - "src": "6423:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6423:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1542, - "initialValue": { - "argumentTypes": null, - "id": 1541, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "6438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6423:26:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1546, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6519:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6519:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6539:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6531:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1551, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6547:4:3", - "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, - "id": 1544, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6502:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 8003, - "src": "6502:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6502:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1543, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6494:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6494:83:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1555, - "nodeType": "ExpressionStatement", - "src": "6494:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6669:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1560, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6694:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6694:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1562, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6718:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1563, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "6736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1567, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "6789:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "6760:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "6760:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "6760:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6760:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6824:1:3", - "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_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1556, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6635:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "appendDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2479, - "src": "6635:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address payable,uint256,bytes memory,uint256,uint256) external" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:200:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "6635:200:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6846:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:1:3", - "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": 1573, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "6870:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6870:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6846:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "6846:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1580, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6962:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1581, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1579, - "name": "LogDarknodeRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "6940:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1583, - "nodeType": "EmitStatement", - "src": "6935:45:3" - } - ] - }, - "documentation": "@notice Register a darknode and transfer the bond to this contract.\n Before registering, the bond transfer must be approved in the REN\n contract. The caller must provide a public encryption key for the\n darknode. The darknode will remain pending registration until the next\n epoch. Only after this period can the darknode be deregistered. The\n caller of this method will be stored as the owner of the darknode.\n\n /// @param _darknodeID The darknode ID that will be registered.\n @param _publicKey The public key of the darknode. It is stored to allow\n other darknodes and traders to encrypt messages to the trader.", - "id": 1585, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1536, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6336:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1537, - "modifierName": { - "argumentTypes": null, - "id": 1535, - "name": "onlyRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "6323:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6323:25:3" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6266:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6266:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6287:25:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6287:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6265:48:3" - }, - "returnParameters": { - "id": 1538, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:0:3" - }, - "scope": 2390, - "src": "6248:739:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1600, - "nodeType": "Block", - "src": "7505:48:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1597, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7534:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1596, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "7515:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1599, - "nodeType": "ExpressionStatement", - "src": "7515:31:3" - } - ] - }, - "documentation": "@notice Deregister a darknode. The darknode will not be deregistered\n until the end of the epoch. After another epoch, the bond can be\n refunded by calling the refund method.\n @param _darknodeID The darknode ID that will be deregistered. The caller\n of this method store.darknodeRegisteredAt(_darknodeID) must be", - "id": 1601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1590, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1591, - "modifierName": { - "argumentTypes": null, - "id": 1589, - "name": "onlyDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "7442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7442:31:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1593, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7492:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1594, - "modifierName": { - "argumentTypes": null, - "id": 1592, - "name": "onlyDarknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "7474:17:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7474:30:3" - } - ], - "name": "deregister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1587, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "7412:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7412:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7411:21:3" - }, - "returnParameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:3" - }, - "scope": 2390, - "src": "7392:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1726, - "nodeType": "Block", - "src": "7755:1684:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "7769:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "7769:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7798:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7769:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1618, - "nodeType": "IfStatement", - "src": "7765:199:3", - "trueBody": { - "id": 1617, - "nodeType": "Block", - "src": "7801:163:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "7898:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7898:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1611, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7393, - "src": "7912:5:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7912:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7898:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420617574686f72697a6564202866697273742065706f63687329", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - }, - "value": "not authorized (first epochs)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - } - ], - "id": 1608, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "7890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7890:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1616, - "nodeType": "ExpressionStatement", - "src": "7890:63:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8036:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8036:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1625, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "8081:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1622, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8052:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "8052:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "8052:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8052:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8036:66:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "65706f636820696e74657276616c20686173206e6f7420706173736564", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8104:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - }, - "value": "epoch interval has not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - } - ], - "id": 1619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "8028:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8028:108:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1630, - "nodeType": "ExpressionStatement", - "src": "8028:108:3" - }, - { - "assignments": [ - 1632 - ], - "declarations": [ - { - "constant": false, - "id": 1632, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "8146:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8146:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8184:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8184:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8199:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1634, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "8174:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8174:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8166:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8146:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1642, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "8260:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8276:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "src": "8260:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "8260:28:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1646, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8298:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1648, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "8344:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8380:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1647, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "8313:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "8313:90:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "8298:105:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1653, - "nodeType": "ExpressionStatement", - "src": "8298:105:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "8457:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1655, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8485:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8457:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "8457:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8507:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1659, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "8522:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8507:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1661, - "nodeType": "ExpressionStatement", - "src": "8507:36:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1662, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8633:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1663, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8652:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1675, - "nodeType": "IfStatement", - "src": "8629:160:3", - "trueBody": { - "id": 1674, - "nodeType": "Block", - "src": "8665:124:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1665, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8679:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1666, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8693:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8679:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1668, - "nodeType": "ExpressionStatement", - "src": "8679:29:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1670, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8749:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1671, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1669, - "name": "LogMinimumBondUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1362, - "src": "8727:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8727:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "EmitStatement", - "src": "8722:56:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1676, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8802:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1677, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8824:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8802:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1689, - "nodeType": "IfStatement", - "src": "8798:181:3", - "trueBody": { - "id": 1688, - "nodeType": "Block", - "src": "8840:139:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1679, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8854:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1680, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8871:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8854:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1682, - "nodeType": "ExpressionStatement", - "src": "8854:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8933:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1685, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1683, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "8908:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8908:60:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1687, - "nodeType": "EmitStatement", - "src": "8903:65:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1690, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "8992:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1691, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9020:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8992:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1703, - "nodeType": "IfStatement", - "src": "8988:223:3", - "trueBody": { - "id": 1702, - "nodeType": "Block", - "src": "9042:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1693, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9056:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1694, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9079:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9056:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1696, - "nodeType": "ExpressionStatement", - "src": "9056:47:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9153:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1699, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1697, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "9122:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9122:78:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "EmitStatement", - "src": "9117:83:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1704, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9224:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1705, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9239:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9224:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1721, - "nodeType": "IfStatement", - "src": "9220:150:3", - "trueBody": { - "id": 1720, - "nodeType": "Block", - "src": "9248:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1707, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1708, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9262:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1710, - "nodeType": "ExpressionStatement", - "src": "9262:21:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9328:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9320:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9320:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9346:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9338:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9338:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1711, - "name": "LogSlasherUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "9302:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9302:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1719, - "nodeType": "EmitStatement", - "src": "9297:62:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1723, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "9422:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1722, - "name": "LogNewEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "9410:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9410:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "EmitStatement", - "src": "9405:27:3" - } - ] - }, - "documentation": "@notice Progress the epoch if it is possible to do so. This captures\n the current timestamp and current blockhash and overrides the current\n epoch.", - "id": 1727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "epoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7743:2:3" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "7755:0:3" - }, - "scope": 2390, - "src": "7729:1710:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1740, - "nodeType": "Block", - "src": "9697:51:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1737, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "9731:9:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1734, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "9707:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "9707:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9707:34:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "9707:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodeRegistryStore. \n @param _newOwner The address to transfer the ownership to.", - "id": 1741, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1732, - "modifierName": { - "argumentTypes": null, - "id": 1731, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "9687:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9687:9:3" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1729, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "9659:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:19:3" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:3" - }, - "scope": 2390, - "src": "9627:121:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1751, - "nodeType": "Block", - "src": "10004:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "10014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "10014:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1750, - "nodeType": "ExpressionStatement", - "src": "10014:22:3" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another Darknode Registry.", - "id": 1752, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1744, - "modifierName": { - "argumentTypes": null, - "id": 1743, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "9994:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9994:9:3" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [], - "src": "9982:2:3" - }, - "returnParameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "10004:0:3" - }, - "scope": 2390, - "src": "9954:89:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1763, - "nodeType": "Block", - "src": "10299:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1759, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10347:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1760, - "name": "_nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "10365:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10347:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "10347:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum bond.\n @param _nextMinimumBond The minimum bond amount that can be submitted by\n a darknode.", - "id": 1764, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1757, - "modifierName": { - "argumentTypes": null, - "id": 1756, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "10289:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10289:9:3" - } - ], - "name": "updateMinimumBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1754, - "name": "_nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "10254:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:26:3" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [], - "src": "10299:0:3" - }, - "scope": 2390, - "src": "10227:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "10608:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1771, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "10656:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1772, - "name": "_nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "10677:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10656:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1774, - "nodeType": "ExpressionStatement", - "src": "10656:40:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum pod size.\n @param _nextMinimumPodSize The minimum size of a pod.", - "id": 1776, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1769, - "modifierName": { - "argumentTypes": null, - "id": 1768, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "10598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10598:9:3" - } - ], - "name": "updateMinimumPodSize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "name": "_nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "10560:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1765, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10559:29:3" - }, - "returnParameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [], - "src": "10608:0:3" - }, - "scope": 2390, - "src": "10530:173:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1787, - "nodeType": "Block", - "src": "10965:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1783, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "11013:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1784, - "name": "_nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "11040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11013:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "11013:52:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum epoch interval.\n @param _nextMinimumEpochInterval The minimum number of blocks between epochs.", - "id": 1788, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1781, - "modifierName": { - "argumentTypes": null, - "id": 1780, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "10955:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10955:9:3" - } - ], - "name": "updateMinimumEpochInterval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "10911:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10910:35:3" - }, - "returnParameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [], - "src": "10965:0:3" - }, - "scope": 2390, - "src": "10875:197:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1810, - "nodeType": "Block", - "src": "11292:116:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1797, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11318:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11310:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11310:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11331:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11310:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420736c61736865722061646472657373", - "id": 1803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11343:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - }, - "value": "invalid slasher address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - } - ], - "id": 1795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "11302:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1805, - "nodeType": "ExpressionStatement", - "src": "11302:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1806, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "11379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1807, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11393:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "11379:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1809, - "nodeType": "ExpressionStatement", - "src": "11379:22:3" - } - ] - }, - "documentation": "@notice Allow the contract owner to update the DarknodeSlasher contract\n address.\n @param _slasher The new slasher address.", - "id": 1811, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1793, - "modifierName": { - "argumentTypes": null, - "id": 1792, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "11282:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11282:9:3" - } - ], - "name": "updateSlasher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "name": "_slasher", - "nodeType": "VariableDeclaration", - "scope": 1811, - "src": "11247:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1789, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "11247:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11246:26:3" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [], - "src": "11292:0:3" - }, - "scope": 2390, - "src": "11224:184:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1877, - "nodeType": "Block", - "src": "12101:695:3", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "penalty", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12111:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12111:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1830, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12129:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "12129:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12129:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12129:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12111:49:3" - }, - { - "assignments": [ - 1832 - ], - "declarations": [ - { - "constant": false, - "id": 1832, - "name": "reward", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12170:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1833, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12187:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12197:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12187:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12170:28:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1840, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12289:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1841, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1837, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12264:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2589, - "src": "12264:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12264:42:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12264:42:3" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12410:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1844, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "12393:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12393:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1852, - "nodeType": "IfStatement", - "src": "12389:83:3", - "trueBody": { - "id": 1851, - "nodeType": "Block", - "src": "12420:52:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1848, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1847, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "12434:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12434:27:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1850, - "nodeType": "ExpressionStatement", - "src": "12434:27:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "12640:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1856, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12620:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12620:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12655:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12607:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "12607:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12607:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12664:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12599:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12599:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1864, - "nodeType": "ExpressionStatement", - "src": "12599:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1870, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "12740:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12720:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12720:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12720:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1872, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12755:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1866, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12707:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "12707:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12707:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1865, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12699:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1876, - "nodeType": "ExpressionStatement", - "src": "12699:90:3" - } - ] - }, - "documentation": "@notice Allow the DarknodeSlasher contract to slash half of a darknode's\n bond and deregister it. The bond is distributed as follows:\n 1/2 is kept by the guilty prover\n 1/8 is rewarded to the first challenger\n 1/8 is rewarded to the second challenger\n 1/4 becomes unassigned\n @param _prover The guilty prover whose bond is being slashed\n @param _challenger1 The first of the two darknodes who submitted the challenge\n @param _challenger2 The second of the two darknodes who submitted the challenge", - "id": 1878, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1820, - "modifierName": { - "argumentTypes": null, - "id": 1819, - "name": "onlySlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "12085:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12085:11:3" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1813, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "11999:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1815, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12016:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12016:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1817, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12038:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12038:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:61:3" - }, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "12101:0:3" - }, - "scope": 2390, - "src": "11984:812:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "13255:476:3", - "statements": [ - { - "assignments": [ - 1887 - ], - "declarations": [ - { - "constant": false, - "id": 1887, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13265:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13265:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1892, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13309:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1888, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13289:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13289:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13289:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13265:56:3" - }, - { - "assignments": [ - 1894 - ], - "declarations": [ - { - "constant": false, - "id": 1894, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13368:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1893, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1897, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13404:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13385:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "13385:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13385:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13368:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1903, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1900, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13475:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2545, - "src": "13475:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13475:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1905, - "nodeType": "ExpressionStatement", - "src": "13475:33:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1909, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13588:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1910, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1907, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "13575:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "13575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13575:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13612:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1906, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "13567:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13567:68:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1914, - "nodeType": "ExpressionStatement", - "src": "13567:68:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1916, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13702:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13717:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1915, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "13677:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13677:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "EmitStatement", - "src": "13672:52:3" - } - ] - }, - "documentation": "@notice Refund the bond of a deregistered darknode. This will make the\n darknode available for registration again. Anyone can call this function\n but the bond will always be refunded to the darknode owner.\n\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n of this method must be the owner of this darknode.", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1883, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13242:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1884, - "modifierName": { - "argumentTypes": null, - "id": 1882, - "name": "onlyRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "13227:14:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13227:27:3" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1880, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "13197:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13197:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13196:21:3" - }, - "returnParameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [], - "src": "13255:0:3" - }, - "scope": 2390, - "src": "13181:550:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "13982:56:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1930, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1923, - "src": "14019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1928, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13999:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13999:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13999:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 1927, - "id": 1932, - "nodeType": "Return", - "src": "13992:39:3" - } - ] - }, - "documentation": "@notice Retrieves the address of the account that registered a darknode.\n @param _darknodeID The ID of the darknode to retrieve the owner for.", - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13921:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13921:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13920:21:3" - }, - "returnParameters": { - "id": 1927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13965:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13965:15:3", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13964:17:3" - }, - "scope": 2390, - "src": "13895:143:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1946, - "nodeType": "Block", - "src": "14269:55:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1943, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "14305:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14286:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "14286:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14286:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1940, - "id": 1945, - "nodeType": "Return", - "src": "14279:38:3" - } - ] - }, - "documentation": "@notice Retrieves the bond amount of a darknode in 10^-18 REN.\n @param _darknodeID The ID of the darknode to retrieve the bond for.", - "id": 1947, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14216:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14216:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14215:21:3" - }, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14260:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14260:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14259:9:3" - }, - "scope": 2390, - "src": "14191:133:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1959, - "nodeType": "Block", - "src": "14569:60:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1956, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14610:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1954, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodePublicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2681, - "src": "14586:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) view external returns (bytes memory)" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14586:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 1953, - "id": 1958, - "nodeType": "Return", - "src": "14579:43:3" - } - ] - }, - "documentation": "@notice Retrieves the encryption public key of the darknode.\n @param _darknodeID The ID of the darknode to retrieve the public key for.", - "id": 1960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1949, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14511:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14511:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:21:3" - }, - "returnParameters": { - "id": 1953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14555:12:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14554:14:3" - }, - "scope": 2390, - "src": "14481:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1989, - "nodeType": "Block", - "src": "15352:170:3", - "statements": [ - { - "assignments": [ - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1971, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "15362:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15362:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1973, - "initialValue": { - "argumentTypes": null, - "id": 1972, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1964, - "src": "15378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15362:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1974, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15398:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15407:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15398:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1982, - "nodeType": "IfStatement", - "src": "15394:61:3", - "trueBody": { - "id": 1981, - "nodeType": "Block", - "src": "15410:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1978, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "15432:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1980, - "nodeType": "ExpressionStatement", - "src": "15424:20:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1984, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "15494:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1985, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15502:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15509:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1983, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15471:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15471:44:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1969, - "id": 1988, - "nodeType": "Return", - "src": "15464:51:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which are registered for the\n current epoch.\n @param _start A darknode ID used as an offset for the list. If _start is\n 0x0, the first dark node will be used. _start won't be\n included it is not registered for the epoch.\n @param _count The number of darknodes to retrieve starting from _start.\n If _count is 0, all of the darknodes from _start are\n retrieved. If _count is more than the remaining number of\n registered darknodes, the rest of the list will contain\n 0x0s.", - "id": 1990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1962, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15279:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15279:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1964, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15295:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15295:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15278:32:3" - }, - "returnParameters": { - "id": 1969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15334:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15334:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15333:18:3" - }, - "scope": 2390, - "src": "15257:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "15783:182:3", - "statements": [ - { - "assignments": [ - 2001 - ], - "declarations": [ - { - "constant": false, - "id": 2001, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "15793:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15793:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2003, - "initialValue": { - "argumentTypes": null, - "id": 2002, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "15809:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15793:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2004, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15838:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15829:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2012, - "nodeType": "IfStatement", - "src": "15825:74:3", - "trueBody": { - "id": 2011, - "nodeType": "Block", - "src": "15841:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2007, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15855:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2008, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "15863:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15855:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "15855:33:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2014, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "15938:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2015, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15946:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15953:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2013, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15915:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 2017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:43:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1999, - "id": 2018, - "nodeType": "Return", - "src": "15908:50:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which were registered for the\n previous epoch. See `getDarknodes` for the parameter documentation.", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPreviousDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1992, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15710:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15710:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15726:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15726:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15709:32:3" - }, - "returnParameters": { - "id": 1999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15765:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15765:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15765:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15764:18:3" - }, - "scope": 2390, - "src": "15680:285:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "16212:156:3", - "statements": [ - { - "assignments": [ - 2028 - ], - "declarations": [ - { - "constant": false, - "id": 2028, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "16222:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16222:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2033, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2031, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "16272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2029, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16245:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "16245:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16245:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16222:62:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2034, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16301:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16317:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16301:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2038, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16337:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16337:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16322:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16301:60:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2026, - "id": 2042, - "nodeType": "Return", - "src": "16294:67:3" - } - ] - }, - "documentation": "@notice Returns whether a darknode is scheduled to become registered\n at next epoch.\n @param _darknodeID The ID of the darknode to return", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingRegistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16162:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16162:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16161:21:3" - }, - "returnParameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2025, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16206:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16205:6:3" - }, - "scope": 2390, - "src": "16131:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "16598:164:3", - "statements": [ - { - "assignments": [ - 2052 - ], - "declarations": [ - { - "constant": false, - "id": 2052, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2067, - "src": "16608:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16608:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "16662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2053, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16633:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16633:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16633:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16608:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2058, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16691:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16709:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16691:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16714:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2062, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16731:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16731:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16714:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16691:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2050, - "id": 2066, - "nodeType": "Return", - "src": "16684:71:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the pending deregistered state. In\n this state a darknode is still considered registered.", - "id": 2068, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingDeregistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16548:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16548:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16547:21:3" - }, - "returnParameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16592:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2048, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16592:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16591:6:3" - }, - "scope": 2390, - "src": "16515:247:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "16908:165:3", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "16918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2081, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2079, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "16972:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2077, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16943:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16943:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16943:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16918:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2082, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17001:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17019:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17001:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2085, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17024:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "17042:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "17042:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17024:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17001:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2074, - "id": 2090, - "nodeType": "Return", - "src": "16994:72:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the deregistered state.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16860:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16860:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16859:21:3" - }, - "returnParameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2073, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16902:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2072, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16902:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16901:6:3" - }, - "scope": 2390, - "src": "16836:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2114, - "nodeType": "Block", - "src": "17326:304:3", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "17336:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17336:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2103, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17390:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "17361:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17361:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17336:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2107, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17588:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2106, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17575:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2109, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "17604:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17622:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17575:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2098, - "id": 2113, - "nodeType": "Return", - "src": "17568:55:3" - } - ] - }, - "documentation": "@notice Returns if a darknode can be deregistered. This is true if the\n darknodes is in the registered state and has not attempted to\n deregister yet.", - "id": 2115, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregisterable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17278:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17278:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:21:3" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17320:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17320:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17319:6:3" - }, - "scope": 2390, - "src": "17252:378:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2144, - "nodeType": "Block", - "src": "17899:212:3", - "statements": [ - { - "assignments": [ - 2123 - ], - "declarations": [ - { - "constant": false, - "id": 2123, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17909:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "17959:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2124, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17932:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "17932:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17932:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17909:62:3" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17981:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17981:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2133, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "18035:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2131, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18006:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18006:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18006:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17981:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2136, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "18064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18080:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18064:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2139, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "18085:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18085:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18064:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2121, - "id": 2143, - "nodeType": "Return", - "src": "18057:47:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the refunded state. This is true\n for darknodes that have never been registered, or darknodes that have\n been deregistered and refunded.", - "id": 2145, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefunded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2117, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17851:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17851:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17850:21:3" - }, - "returnParameters": { - "id": 2121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2120, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17893:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17893:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17892:6:3" - }, - "scope": 2390, - "src": "17831:280:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2164, - "nodeType": "Block", - "src": "18336:125:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2153, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18368:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2152, - "name": "isDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "18353:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18353:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2157, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18413:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2155, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18384:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18384:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18384:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2159, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18429:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "18429:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18384:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18353:101:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2151, - "id": 2163, - "nodeType": "Return", - "src": "18346:108:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is refundable. This is true for darknodes\n that have been in the deregistered state for one full epoch.", - "id": 2165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefundable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2147, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18288:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18287:21:3" - }, - "returnParameters": { - "id": 2151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2150, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18330:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2149, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18330:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18329:6:3" - }, - "scope": 2390, - "src": "18266:195:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2177, - "nodeType": "Block", - "src": "18603:70:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2173, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2167, - "src": "18640:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2174, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "18653:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2172, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18620:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2171, - "id": 2176, - "nodeType": "Return", - "src": "18613:53:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the registered state.", - "id": 2178, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2167, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18555:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18555:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18554:21:3" - }, - "returnParameters": { - "id": 2171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18597:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18597:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18596:6:3" - }, - "scope": 2390, - "src": "18533:140:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "18842:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "18879:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18892:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2185, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18859:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18859:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2184, - "id": 2189, - "nodeType": "Return", - "src": "18852:54:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state last epoch.", - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInPreviousEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18793:21:3" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18836:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18836:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18835:6:3" - }, - "scope": 2390, - "src": "18757:156:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2240, - "nodeType": "Block", - "src": "19218:509:3", - "statements": [ - { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19228:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19228:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2206, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2204, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19278:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2202, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19251:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "19251:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19251:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19228:62:3" - }, - { - "assignments": [ - 2208 - ], - "declarations": [ - { - "constant": false, - "id": 2208, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19300:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19300:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2213, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19354:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2209, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19325:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "19325:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19300:66:3" - }, - { - "assignments": [ - 2215 - ], - "declarations": [ - { - "constant": false, - "id": 2215, - "name": "registered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19376:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2214, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19376:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2224, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2216, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19410:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19394:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2219, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19415:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2220, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19431:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19431:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19415:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19394:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19376:73:3" - }, - { - "assignments": [ - 2226 - ], - "declarations": [ - { - "constant": false, - "id": 2226, - "name": "notDeregistered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19459:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19459:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2235, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2227, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19482:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19500:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19482:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2230, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19505:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2231, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19522:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19522:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19505:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19482:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19459:81:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2236, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "19691:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2237, - "name": "notDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "19705:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19691:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2199, - "id": 2239, - "nodeType": "Return", - "src": "19684:36:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state for a given\n epoch.\n @param _darknodeID The ID of the darknode\n @param _epoch One of currentEpoch, previousEpoch", - "id": 2241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19148:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19148:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2195, - "name": "_epoch", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19169:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 2194, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "19169:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19147:42:3" - }, - "returnParameters": { - "id": 2199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19212:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19212:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19211:6:3" - }, - "scope": 2390, - "src": "19119:608:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2360, - "nodeType": "Block", - "src": "20170:1037:3", - "statements": [ - { - "assignments": [ - 2254 - ], - "declarations": [ - { - "constant": false, - "id": 2254, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20180:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2256, - "initialValue": { - "argumentTypes": null, - "id": 2255, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "20196:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20180:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2257, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20225:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20216:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2265, - "nodeType": "IfStatement", - "src": "20212:61:3", - "trueBody": { - "id": 2264, - "nodeType": "Block", - "src": "20228:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2260, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2261, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "20250:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20242:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "20242:20:3" - } - ] - } - }, - { - "assignments": [ - 2269 - ], - "declarations": [ - { - "constant": false, - "id": 2269, - "name": "nodes", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20283:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20283:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20283:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2273, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20322:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20308:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 2270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20312:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20312:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20308:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20283:45:3" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20388:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20400:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20388:13:3" - }, - { - "assignments": [ - 2281 - ], - "declarations": [ - { - "constant": false, - "id": 2281, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20411:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2283, - "initialValue": { - "argumentTypes": null, - "id": 2282, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "20426:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20411:21:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2284, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20446:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20462:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20454:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20454:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20446:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2296, - "nodeType": "IfStatement", - "src": "20442:69:3", - "trueBody": { - "id": 2295, - "nodeType": "Block", - "src": "20466:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2289, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20480:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "20487:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2492, - "src": "20487:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20487:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20480:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "20480:20:3" - } - ] - } - }, - { - "body": { - "id": 2356, - "nodeType": "Block", - "src": "20609:570:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2300, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20643:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20635:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20635:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20627:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2307, - "nodeType": "IfStatement", - "src": "20623:62:3", - "trueBody": { - "id": 2306, - "nodeType": "Block", - "src": "20647:38:3", - "statements": [ - { - "id": 2305, - "nodeType": "Break", - "src": "20665:5:3" - } - ] - } - }, - { - "assignments": [ - 2309 - ], - "declarations": [ - { - "constant": false, - "id": 2309, - "name": "includeNext", - "nodeType": "VariableDeclaration", - "scope": 2356, - "src": "20766:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2310, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20766:16:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2311, - "name": "_usePreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2247, - "src": "20800:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2325, - "nodeType": "Block", - "src": "20905:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2319, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20923:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2321, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20950:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2320, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "20937:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20937:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20923:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2324, - "nodeType": "ExpressionStatement", - "src": "20923:32:3" - } - ] - }, - "id": 2326, - "nodeType": "IfStatement", - "src": "20796:174:3", - "trueBody": { - "id": 2318, - "nodeType": "Block", - "src": "20819:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20837:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2314, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2313, - "name": "isRegisteredInPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "20851:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20851:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20837:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "20837:47:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20987:12:3", - "subExpression": { - "argumentTypes": null, - "id": 2327, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20988:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2338, - "nodeType": "IfStatement", - "src": "20983:100:3", - "trueBody": { - "id": 2337, - "nodeType": "Block", - "src": "21001:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2329, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2332, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2330, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21026:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21026:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21026:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21019:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2335, - "nodeType": "ExpressionStatement", - "src": "21019:23:3" - }, - { - "id": 2336, - "nodeType": "Continue", - "src": "21060:8:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2339, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21096:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2341, - "indexExpression": { - "argumentTypes": null, - "id": 2340, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21102:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21096:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2342, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21107:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21096:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2344, - "nodeType": "ExpressionStatement", - "src": "21096:15:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2348, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21143:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2346, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21132:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21132:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21132:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21125:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2351, - "nodeType": "ExpressionStatement", - "src": "21125:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2352, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21162:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21167:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21162:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "21162:6:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2297, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "20598:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2298, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20602:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2357, - "nodeType": "WhileStatement", - "src": "20591:588:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21195:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2252, - "id": 2359, - "nodeType": "Return", - "src": "21188:12:3" - } - ] - }, - "documentation": "@notice Returns a list of darknodes registered for either the current\n or the previous epoch. See `getDarknodes` for documentation on the\n parameters `_start` and `_count`.\n @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n the current epoch.", - "id": 2361, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodesFromEpochs", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2243, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20074:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20074:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20090:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2247, - "name": "_usePreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20106:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20106:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20073:56:3" - }, - "returnParameters": { - "id": 2252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20152:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2250, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20152:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20151:18:3" - }, - "scope": 2390, - "src": "20042:1165:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2388, - "nodeType": "Block", - "src": "21330:303:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2369, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21423:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2373, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "21465:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "21436:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "21436:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "21436:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21436:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2366, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21388:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2606, - "src": "21388:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21388:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "21388:99:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2377, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21497:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21547:1:3", - "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": 2378, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21521:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "21521:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21521:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21497:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "21497:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21614:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2384, - "name": "LogDarknodeDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "21590:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21590:36:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2387, - "nodeType": "EmitStatement", - "src": "21585:41:3" - } - ] - }, - "documentation": "Private function called by `deregister` and `slash`", - "id": 2389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deregisterDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2363, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2389, - "src": "21301:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21301:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21300:21:3" - }, - "returnParameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [], - "src": "21330:0:3" - }, - "scope": 2390, - "src": "21273:360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 2391, - "src": "375:21260:3" - } - ], - "src": "0:21636:3" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "exportedSymbols": { - "DarknodeRegistry": [ - 2390 - ] - }, - "id": 2391, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1289, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1290, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7471, - "src": "25:63:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1291, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7360, - "src": "89:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 1292, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2808, - "src": "150:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "file": "../DarknodeSlasher/DarknodeSlasher.sol", - "id": 1293, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2722, - "src": "185:48:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "file": "./DarknodeRegistryStore.sol", - "id": 1294, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2683, - "src": "234:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1295, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 1296, - "nodeType": "InheritanceSpecifier", - "src": "404:7:3" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeRegistry is responsible for the registration and\n deregistration of Darknodes.", - "fullyImplemented": true, - "id": 2390, - "linearizedBaseContracts": [ - 2390, - 7470 - ], - "name": "DarknodeRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1299, - "libraryName": { - "contractScope": null, - "id": 1297, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "424:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:3", - "typeName": { - "id": 1298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1301, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "451:21:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1300, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistry.Epoch", - "id": 1306, - "members": [ - { - "constant": false, - "id": 1303, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "767:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "767:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1305, - "name": "blocknumber", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "794:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Epoch", - "nodeType": "StructDefinition", - "scope": 2390, - "src": "744:76:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1308, - "name": "numDarknodes", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "826:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1310, - "name": "numDarknodesNextEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "859:36:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "859:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1312, - "name": "numDarknodesPreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "901:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1314, - "name": "minimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "997:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1316, - "name": "minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1029:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1318, - "name": "minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1064:35:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1320, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1270:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1322, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1306:33:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1324, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1345:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1326, - "name": "currentEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1430:25:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1325, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1430:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1328, - "name": "previousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1461:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1327, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1461:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1330, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1556:19:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1329, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "1556:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1332, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1653:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1331, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "1653:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1334, - "name": "slasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1762:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1333, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1336, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1798:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1335, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is registered.\n @param _darknodeID The darknode ID that was registered.\n @param _bond The amount of REN that was transferred as bond.", - "id": 1342, - "name": "LogDarknodeRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2055:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": false, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2084:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2054:44:3" - }, - "src": "2027:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is deregistered.\n @param _darknodeID The darknode ID that was deregistered.", - "id": 1346, - "name": "LogDarknodeDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2258:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2258:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:29:3" - }, - "src": "2228:59:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a refund has been made.\n @param _owner The address that was refunded.\n @param _amount The amount of REN that was refunded.", - "id": 1352, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1348, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2490:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2514:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2489:41:3" - }, - "src": "2459:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new epoch has begun.", - "id": 1356, - "name": "LogNewEpoch", - "nodeType": "EventDefinition", - "parameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1354, - "indexed": true, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "2607:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2607:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2606:27:3" - }, - "src": "2589:45:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a constructor parameter has been updated.", - "id": 1362, - "name": "LogMinimumBondUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "indexed": false, - "name": "previousMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2739:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2739:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "indexed": false, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2768:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2768:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2738:54:3" - }, - "src": "2711:82:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1368, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "indexed": false, - "name": "previousMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2829:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2829:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1366, - "indexed": false, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2861:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2828:60:3" - }, - "src": "2798:91:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1374, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1370, - "indexed": false, - "name": "previousMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2931:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "indexed": false, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2969:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2930:72:3" - }, - "src": "2894:109:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1380, - "name": "LogSlasherUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1376, - "indexed": false, - "name": "previousSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3032:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1378, - "indexed": false, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3057:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:46:3" - }, - "src": "3008:70:3" - }, - { - "body": { - "id": 1396, - "nodeType": "Block", - "src": "3211:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1387, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1382, - "src": "3249:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1385, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "3229:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "3229:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1389, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "3265:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3229:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206461726b6e6f6465206f776e6572", - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3277:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - }, - "value": "must be darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - } - ], - "id": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3221:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3221:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "3221:81:3" - }, - { - "id": 1395, - "nodeType": "PlaceholderStatement", - "src": "3312:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the owner that registered the darknode.", - "id": 1397, - "name": "onlyDarknodeOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1397, - "src": "3190:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3190:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3189:21:3" - }, - "src": "3163:157:3", - "visibility": "internal" - }, - { - "body": { - "id": 1409, - "nodeType": "Block", - "src": "3432:100:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1403, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1402, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "3450:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3450:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520726566756e646564206f72206e657665722072656769737465726564", - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - }, - "value": "must be refunded or never registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - } - ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3442:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3442:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "ExpressionStatement", - "src": "3442:72:3" - }, - { - "id": 1408, - "nodeType": "PlaceholderStatement", - "src": "3524:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to unregistered darknodes.", - "id": 1410, - "name": "onlyRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1410, - "src": "3411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3410:21:3" - }, - "src": "3389:143:3", - "visibility": "internal" - }, - { - "body": { - "id": 1422, - "nodeType": "Block", - "src": "3644:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1416, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1415, - "name": "isRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "3662:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f6368", - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3689:45:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - }, - "value": "must be deregistered for at least one epoch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - } - ], - "id": 1414, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3654:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "3654:81:3" - }, - { - "id": 1421, - "nodeType": "PlaceholderStatement", - "src": "3745:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to refundable darknodes.", - "id": 1423, - "name": "onlyRefundable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1412, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1423, - "src": "3623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3623:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:21:3" - }, - "src": "3599:154:3", - "visibility": "internal" - }, - { - "body": { - "id": 1435, - "nodeType": "Block", - "src": "3906:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1428, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "3924:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3924:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206465726567697374657261626c65", - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - }, - "value": "must be deregisterable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - } - ], - "id": 1427, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3916:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1433, - "nodeType": "ExpressionStatement", - "src": "3916:64:3" - }, - { - "id": 1434, - "nodeType": "PlaceholderStatement", - "src": "3990:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to registered nodes without a pending\n deregistration.", - "id": 1436, - "name": "onlyDeregisterable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1436, - "src": "3885:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3885:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3884:21:3" - }, - "src": "3857:141:3", - "visibility": "internal" - }, - { - "body": { - "id": 1449, - "nodeType": "Block", - "src": "4088:86:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "4114:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4106:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4106:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1442, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4126:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4126:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4106:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520736c6173686572", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4138:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - }, - "value": "must be slasher" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - } - ], - "id": 1438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4098:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4098:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "4098:58:3" - }, - { - "id": 1448, - "nodeType": "PlaceholderStatement", - "src": "4166:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the Slasher contract.", - "id": 1450, - "name": "onlySlasher", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "4085:2:3" - }, - "src": "4065:109:3", - "visibility": "internal" - }, - { - "body": { - "id": 1528, - "nodeType": "Block", - "src": "4941:613:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1465, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "4951:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1466, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "4961:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4951:18:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1468, - "nodeType": "ExpressionStatement", - "src": "4951:18:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "4980:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1470, - "name": "_storeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4988:13:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "src": "4980:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "4980:21:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1473, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5011:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1474, - "name": "_renAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1454, - "src": "5017:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "5011:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "5011:17:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "_minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "5053:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5039:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1480, - "nodeType": "ExpressionStatement", - "src": "5039:26:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "5075:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1482, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5093:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "5075:29:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5115:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1486, - "name": "_minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "5132:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1488, - "nodeType": "ExpressionStatement", - "src": "5115:32:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "5157:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1490, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5178:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5157:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1492, - "nodeType": "ExpressionStatement", - "src": "5157:35:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5203:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1494, - "name": "_minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "5226:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5203:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1496, - "nodeType": "ExpressionStatement", - "src": "5203:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "5257:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1498, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5284:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5257:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "5257:47:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "5315:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "5379:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5379:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1504, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "5369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "5424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5424:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1502, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "5330:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "5330:117:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "5315:132:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "5315:132:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "5457:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5472:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5457:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "5457:16:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1520, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5483:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5483:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "5483:25:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1524, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5518:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5518:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1527, - "nodeType": "ExpressionStatement", - "src": "5518:29:3" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _renAddress The address of the RenToken contract.\n @param _storeAddress The address of the DarknodeRegistryStore contract.\n @param _minimumBond The minimum bond amount that can be submitted by a\n Darknode.\n @param _minimumPodSize The minimum size of a Darknode pod.\n @param _minimumEpochInterval The minimum number of blocks between\n epochs.", - "id": 1529, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1452, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4728:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1451, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4728:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "name": "_renAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4760:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1453, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "4760:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "name": "_storeAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4790:35:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1455, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "4790:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_minimumBond", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4835:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4835:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "name": "_minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4865:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4898:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4898:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4718:215:3" - }, - "returnParameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "4941:0:3" - }, - "scope": 2390, - "src": "4707:847:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1584, - "nodeType": "Block", - "src": "6349:638:3", - "statements": [ - { - "assignments": [ - 1540 - ], - "declarations": [ - { - "constant": false, - "id": 1540, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 1584, - "src": "6423:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6423:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1542, - "initialValue": { - "argumentTypes": null, - "id": 1541, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "6438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6423:26:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1546, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6519:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6519:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6539:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6531:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1551, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6547:4:3", - "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, - "id": 1544, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6502:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 8003, - "src": "6502:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6502:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1543, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6494:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6494:83:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1555, - "nodeType": "ExpressionStatement", - "src": "6494:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6669:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1560, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6694:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6694:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1562, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6718:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1563, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "6736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1567, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "6789:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "6760:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "6760:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "6760:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6760:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6824:1:3", - "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_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1556, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6635:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "appendDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2479, - "src": "6635:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address payable,uint256,bytes memory,uint256,uint256) external" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:200:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "6635:200:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6846:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:1:3", - "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": 1573, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "6870:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6870:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6846:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "6846:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1580, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6962:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1581, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1579, - "name": "LogDarknodeRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "6940:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1583, - "nodeType": "EmitStatement", - "src": "6935:45:3" - } - ] - }, - "documentation": "@notice Register a darknode and transfer the bond to this contract.\n Before registering, the bond transfer must be approved in the REN\n contract. The caller must provide a public encryption key for the\n darknode. The darknode will remain pending registration until the next\n epoch. Only after this period can the darknode be deregistered. The\n caller of this method will be stored as the owner of the darknode.\n\n /// @param _darknodeID The darknode ID that will be registered.\n @param _publicKey The public key of the darknode. It is stored to allow\n other darknodes and traders to encrypt messages to the trader.", - "id": 1585, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1536, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6336:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1537, - "modifierName": { - "argumentTypes": null, - "id": 1535, - "name": "onlyRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "6323:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6323:25:3" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6266:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6266:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6287:25:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6287:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6265:48:3" - }, - "returnParameters": { - "id": 1538, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:0:3" - }, - "scope": 2390, - "src": "6248:739:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1600, - "nodeType": "Block", - "src": "7505:48:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1597, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7534:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1596, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "7515:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1599, - "nodeType": "ExpressionStatement", - "src": "7515:31:3" - } - ] - }, - "documentation": "@notice Deregister a darknode. The darknode will not be deregistered\n until the end of the epoch. After another epoch, the bond can be\n refunded by calling the refund method.\n @param _darknodeID The darknode ID that will be deregistered. The caller\n of this method store.darknodeRegisteredAt(_darknodeID) must be", - "id": 1601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1590, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1591, - "modifierName": { - "argumentTypes": null, - "id": 1589, - "name": "onlyDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "7442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7442:31:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1593, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7492:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1594, - "modifierName": { - "argumentTypes": null, - "id": 1592, - "name": "onlyDarknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "7474:17:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7474:30:3" - } - ], - "name": "deregister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1587, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "7412:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7412:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7411:21:3" - }, - "returnParameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:3" - }, - "scope": 2390, - "src": "7392:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1726, - "nodeType": "Block", - "src": "7755:1684:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "7769:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "7769:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7798:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7769:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1618, - "nodeType": "IfStatement", - "src": "7765:199:3", - "trueBody": { - "id": 1617, - "nodeType": "Block", - "src": "7801:163:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "7898:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7898:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1611, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7393, - "src": "7912:5:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7912:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7898:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420617574686f72697a6564202866697273742065706f63687329", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - }, - "value": "not authorized (first epochs)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - } - ], - "id": 1608, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "7890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7890:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1616, - "nodeType": "ExpressionStatement", - "src": "7890:63:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8036:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8036:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1625, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "8081:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1622, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8052:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "8052:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "8052:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8052:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8036:66:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "65706f636820696e74657276616c20686173206e6f7420706173736564", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8104:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - }, - "value": "epoch interval has not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - } - ], - "id": 1619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "8028:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8028:108:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1630, - "nodeType": "ExpressionStatement", - "src": "8028:108:3" - }, - { - "assignments": [ - 1632 - ], - "declarations": [ - { - "constant": false, - "id": 1632, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "8146:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8146:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8184:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8184:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8199:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1634, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8152, - "src": "8174:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8174:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8166:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8146:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1642, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "8260:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8276:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "src": "8260:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "8260:28:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1646, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8298:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1648, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "8344:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "8380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8380:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1647, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "8313:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "8313:90:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "8298:105:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1653, - "nodeType": "ExpressionStatement", - "src": "8298:105:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "8457:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1655, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8485:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8457:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "8457:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8507:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1659, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "8522:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8507:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1661, - "nodeType": "ExpressionStatement", - "src": "8507:36:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1662, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8633:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1663, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8652:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1675, - "nodeType": "IfStatement", - "src": "8629:160:3", - "trueBody": { - "id": 1674, - "nodeType": "Block", - "src": "8665:124:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1665, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8679:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1666, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8693:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8679:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1668, - "nodeType": "ExpressionStatement", - "src": "8679:29:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1670, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8749:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1671, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1669, - "name": "LogMinimumBondUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1362, - "src": "8727:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8727:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "EmitStatement", - "src": "8722:56:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1676, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8802:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1677, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8824:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8802:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1689, - "nodeType": "IfStatement", - "src": "8798:181:3", - "trueBody": { - "id": 1688, - "nodeType": "Block", - "src": "8840:139:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1679, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8854:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1680, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8871:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8854:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1682, - "nodeType": "ExpressionStatement", - "src": "8854:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8933:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1685, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1683, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "8908:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8908:60:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1687, - "nodeType": "EmitStatement", - "src": "8903:65:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1690, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "8992:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1691, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9020:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8992:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1703, - "nodeType": "IfStatement", - "src": "8988:223:3", - "trueBody": { - "id": 1702, - "nodeType": "Block", - "src": "9042:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1693, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9056:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1694, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9079:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9056:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1696, - "nodeType": "ExpressionStatement", - "src": "9056:47:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9153:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1699, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1697, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "9122:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9122:78:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "EmitStatement", - "src": "9117:83:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1704, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9224:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1705, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9239:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9224:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1721, - "nodeType": "IfStatement", - "src": "9220:150:3", - "trueBody": { - "id": 1720, - "nodeType": "Block", - "src": "9248:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1707, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1708, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9262:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1710, - "nodeType": "ExpressionStatement", - "src": "9262:21:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9328:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9320:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9320:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9346:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9338:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9338:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1711, - "name": "LogSlasherUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "9302:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9302:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1719, - "nodeType": "EmitStatement", - "src": "9297:62:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1723, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "9422:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1722, - "name": "LogNewEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "9410:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9410:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "EmitStatement", - "src": "9405:27:3" - } - ] - }, - "documentation": "@notice Progress the epoch if it is possible to do so. This captures\n the current timestamp and current blockhash and overrides the current\n epoch.", - "id": 1727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "epoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7743:2:3" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "7755:0:3" - }, - "scope": 2390, - "src": "7729:1710:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1740, - "nodeType": "Block", - "src": "9697:51:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1737, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "9731:9:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1734, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "9707:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "9707:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9707:34:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "9707:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodeRegistryStore. \n @param _newOwner The address to transfer the ownership to.", - "id": 1741, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1732, - "modifierName": { - "argumentTypes": null, - "id": 1731, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "9687:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9687:9:3" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1729, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "9659:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:19:3" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:3" - }, - "scope": 2390, - "src": "9627:121:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1751, - "nodeType": "Block", - "src": "10004:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "10014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "10014:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1750, - "nodeType": "ExpressionStatement", - "src": "10014:22:3" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another Darknode Registry.", - "id": 1752, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1744, - "modifierName": { - "argumentTypes": null, - "id": 1743, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "9994:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9994:9:3" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [], - "src": "9982:2:3" - }, - "returnParameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "10004:0:3" - }, - "scope": 2390, - "src": "9954:89:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1763, - "nodeType": "Block", - "src": "10299:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1759, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10347:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1760, - "name": "_nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "10365:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10347:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "10347:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum bond.\n @param _nextMinimumBond The minimum bond amount that can be submitted by\n a darknode.", - "id": 1764, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1757, - "modifierName": { - "argumentTypes": null, - "id": 1756, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "10289:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10289:9:3" - } - ], - "name": "updateMinimumBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1754, - "name": "_nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "10254:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:26:3" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [], - "src": "10299:0:3" - }, - "scope": 2390, - "src": "10227:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "10608:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1771, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "10656:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1772, - "name": "_nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "10677:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10656:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1774, - "nodeType": "ExpressionStatement", - "src": "10656:40:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum pod size.\n @param _nextMinimumPodSize The minimum size of a pod.", - "id": 1776, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1769, - "modifierName": { - "argumentTypes": null, - "id": 1768, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "10598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10598:9:3" - } - ], - "name": "updateMinimumPodSize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "name": "_nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "10560:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1765, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10559:29:3" - }, - "returnParameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [], - "src": "10608:0:3" - }, - "scope": 2390, - "src": "10530:173:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1787, - "nodeType": "Block", - "src": "10965:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1783, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "11013:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1784, - "name": "_nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "11040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11013:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "11013:52:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum epoch interval.\n @param _nextMinimumEpochInterval The minimum number of blocks between epochs.", - "id": 1788, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1781, - "modifierName": { - "argumentTypes": null, - "id": 1780, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "10955:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10955:9:3" - } - ], - "name": "updateMinimumEpochInterval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "10911:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10910:35:3" - }, - "returnParameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [], - "src": "10965:0:3" - }, - "scope": 2390, - "src": "10875:197:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1810, - "nodeType": "Block", - "src": "11292:116:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1797, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11318:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11310:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11310:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11331:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11310:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420736c61736865722061646472657373", - "id": 1803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11343:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - }, - "value": "invalid slasher address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - } - ], - "id": 1795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "11302:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1805, - "nodeType": "ExpressionStatement", - "src": "11302:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1806, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "11379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1807, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11393:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "11379:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1809, - "nodeType": "ExpressionStatement", - "src": "11379:22:3" - } - ] - }, - "documentation": "@notice Allow the contract owner to update the DarknodeSlasher contract\n address.\n @param _slasher The new slasher address.", - "id": 1811, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1793, - "modifierName": { - "argumentTypes": null, - "id": 1792, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "11282:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11282:9:3" - } - ], - "name": "updateSlasher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "name": "_slasher", - "nodeType": "VariableDeclaration", - "scope": 1811, - "src": "11247:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1789, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "11247:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11246:26:3" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [], - "src": "11292:0:3" - }, - "scope": 2390, - "src": "11224:184:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1877, - "nodeType": "Block", - "src": "12101:695:3", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "penalty", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12111:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12111:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1830, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12129:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "12129:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12129:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12129:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12111:49:3" - }, - { - "assignments": [ - 1832 - ], - "declarations": [ - { - "constant": false, - "id": 1832, - "name": "reward", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12170:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1833, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12187:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12197:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12187:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12170:28:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1840, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12289:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1841, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1837, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12264:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2589, - "src": "12264:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12264:42:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12264:42:3" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12410:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1844, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "12393:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12393:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1852, - "nodeType": "IfStatement", - "src": "12389:83:3", - "trueBody": { - "id": 1851, - "nodeType": "Block", - "src": "12420:52:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1848, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1847, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "12434:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12434:27:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1850, - "nodeType": "ExpressionStatement", - "src": "12434:27:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "12640:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1856, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12620:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12620:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12655:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12607:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "12607:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12607:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12664:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12599:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12599:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1864, - "nodeType": "ExpressionStatement", - "src": "12599:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1870, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "12740:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12720:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12720:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12720:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1872, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12755:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1866, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12707:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "12707:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12707:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1865, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "12699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12699:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1876, - "nodeType": "ExpressionStatement", - "src": "12699:90:3" - } - ] - }, - "documentation": "@notice Allow the DarknodeSlasher contract to slash half of a darknode's\n bond and deregister it. The bond is distributed as follows:\n 1/2 is kept by the guilty prover\n 1/8 is rewarded to the first challenger\n 1/8 is rewarded to the second challenger\n 1/4 becomes unassigned\n @param _prover The guilty prover whose bond is being slashed\n @param _challenger1 The first of the two darknodes who submitted the challenge\n @param _challenger2 The second of the two darknodes who submitted the challenge", - "id": 1878, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1820, - "modifierName": { - "argumentTypes": null, - "id": 1819, - "name": "onlySlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "12085:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12085:11:3" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1813, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "11999:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1815, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12016:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12016:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1817, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12038:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12038:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:61:3" - }, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "12101:0:3" - }, - "scope": 2390, - "src": "11984:812:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "13255:476:3", - "statements": [ - { - "assignments": [ - 1887 - ], - "declarations": [ - { - "constant": false, - "id": 1887, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13265:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13265:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1892, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13309:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1888, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13289:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13289:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13289:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13265:56:3" - }, - { - "assignments": [ - 1894 - ], - "declarations": [ - { - "constant": false, - "id": 1894, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13368:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1893, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1897, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13404:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13385:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "13385:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13385:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13368:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1903, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1900, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13475:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2545, - "src": "13475:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13475:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1905, - "nodeType": "ExpressionStatement", - "src": "13475:33:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1909, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13588:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1910, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1907, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "13575:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "13575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13575:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13612:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1906, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "13567:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13567:68:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1914, - "nodeType": "ExpressionStatement", - "src": "13567:68:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1916, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13702:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13717:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1915, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "13677:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13677:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "EmitStatement", - "src": "13672:52:3" - } - ] - }, - "documentation": "@notice Refund the bond of a deregistered darknode. This will make the\n darknode available for registration again. Anyone can call this function\n but the bond will always be refunded to the darknode owner.\n\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n of this method must be the owner of this darknode.", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1883, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13242:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1884, - "modifierName": { - "argumentTypes": null, - "id": 1882, - "name": "onlyRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "13227:14:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13227:27:3" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1880, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "13197:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13197:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13196:21:3" - }, - "returnParameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [], - "src": "13255:0:3" - }, - "scope": 2390, - "src": "13181:550:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "13982:56:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1930, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1923, - "src": "14019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1928, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13999:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13999:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13999:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 1927, - "id": 1932, - "nodeType": "Return", - "src": "13992:39:3" - } - ] - }, - "documentation": "@notice Retrieves the address of the account that registered a darknode.\n @param _darknodeID The ID of the darknode to retrieve the owner for.", - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13921:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13921:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13920:21:3" - }, - "returnParameters": { - "id": 1927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13965:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13965:15:3", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13964:17:3" - }, - "scope": 2390, - "src": "13895:143:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1946, - "nodeType": "Block", - "src": "14269:55:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1943, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "14305:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14286:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "14286:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14286:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1940, - "id": 1945, - "nodeType": "Return", - "src": "14279:38:3" - } - ] - }, - "documentation": "@notice Retrieves the bond amount of a darknode in 10^-18 REN.\n @param _darknodeID The ID of the darknode to retrieve the bond for.", - "id": 1947, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14216:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14216:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14215:21:3" - }, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14260:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14260:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14259:9:3" - }, - "scope": 2390, - "src": "14191:133:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1959, - "nodeType": "Block", - "src": "14569:60:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1956, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14610:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1954, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodePublicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2681, - "src": "14586:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) view external returns (bytes memory)" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14586:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 1953, - "id": 1958, - "nodeType": "Return", - "src": "14579:43:3" - } - ] - }, - "documentation": "@notice Retrieves the encryption public key of the darknode.\n @param _darknodeID The ID of the darknode to retrieve the public key for.", - "id": 1960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1949, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14511:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14511:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:21:3" - }, - "returnParameters": { - "id": 1953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14555:12:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14554:14:3" - }, - "scope": 2390, - "src": "14481:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1989, - "nodeType": "Block", - "src": "15352:170:3", - "statements": [ - { - "assignments": [ - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1971, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "15362:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15362:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1973, - "initialValue": { - "argumentTypes": null, - "id": 1972, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1964, - "src": "15378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15362:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1974, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15398:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15407:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15398:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1982, - "nodeType": "IfStatement", - "src": "15394:61:3", - "trueBody": { - "id": 1981, - "nodeType": "Block", - "src": "15410:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1978, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "15432:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1980, - "nodeType": "ExpressionStatement", - "src": "15424:20:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1984, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "15494:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1985, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15502:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15509:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1983, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15471:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15471:44:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1969, - "id": 1988, - "nodeType": "Return", - "src": "15464:51:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which are registered for the\n current epoch.\n @param _start A darknode ID used as an offset for the list. If _start is\n 0x0, the first dark node will be used. _start won't be\n included it is not registered for the epoch.\n @param _count The number of darknodes to retrieve starting from _start.\n If _count is 0, all of the darknodes from _start are\n retrieved. If _count is more than the remaining number of\n registered darknodes, the rest of the list will contain\n 0x0s.", - "id": 1990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1962, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15279:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15279:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1964, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15295:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15295:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15278:32:3" - }, - "returnParameters": { - "id": 1969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15334:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15334:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15333:18:3" - }, - "scope": 2390, - "src": "15257:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "15783:182:3", - "statements": [ - { - "assignments": [ - 2001 - ], - "declarations": [ - { - "constant": false, - "id": 2001, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "15793:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15793:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2003, - "initialValue": { - "argumentTypes": null, - "id": 2002, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "15809:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15793:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2004, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15838:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15829:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2012, - "nodeType": "IfStatement", - "src": "15825:74:3", - "trueBody": { - "id": 2011, - "nodeType": "Block", - "src": "15841:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2007, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15855:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2008, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "15863:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15855:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "15855:33:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2014, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "15938:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2015, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15946:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15953:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2013, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15915:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 2017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:43:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1999, - "id": 2018, - "nodeType": "Return", - "src": "15908:50:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which were registered for the\n previous epoch. See `getDarknodes` for the parameter documentation.", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPreviousDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1992, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15710:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15710:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15726:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15726:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15709:32:3" - }, - "returnParameters": { - "id": 1999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15765:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15765:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15765:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15764:18:3" - }, - "scope": 2390, - "src": "15680:285:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "16212:156:3", - "statements": [ - { - "assignments": [ - 2028 - ], - "declarations": [ - { - "constant": false, - "id": 2028, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "16222:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16222:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2033, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2031, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "16272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2029, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16245:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "16245:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16245:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16222:62:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2034, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16301:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16317:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16301:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2038, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16337:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16337:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16322:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16301:60:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2026, - "id": 2042, - "nodeType": "Return", - "src": "16294:67:3" - } - ] - }, - "documentation": "@notice Returns whether a darknode is scheduled to become registered\n at next epoch.\n @param _darknodeID The ID of the darknode to return", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingRegistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16162:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16162:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16161:21:3" - }, - "returnParameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2025, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16206:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16205:6:3" - }, - "scope": 2390, - "src": "16131:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "16598:164:3", - "statements": [ - { - "assignments": [ - 2052 - ], - "declarations": [ - { - "constant": false, - "id": 2052, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2067, - "src": "16608:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16608:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "16662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2053, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16633:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16633:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16633:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16608:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2058, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16691:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16709:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16691:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16714:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2062, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16731:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16731:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16714:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16691:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2050, - "id": 2066, - "nodeType": "Return", - "src": "16684:71:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the pending deregistered state. In\n this state a darknode is still considered registered.", - "id": 2068, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingDeregistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16548:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16548:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16547:21:3" - }, - "returnParameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16592:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2048, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16592:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16591:6:3" - }, - "scope": 2390, - "src": "16515:247:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "16908:165:3", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "16918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2081, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2079, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "16972:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2077, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16943:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16943:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16943:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16918:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2082, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17001:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17019:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17001:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2085, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17024:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "17042:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "17042:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17024:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17001:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2074, - "id": 2090, - "nodeType": "Return", - "src": "16994:72:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the deregistered state.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16860:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16860:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16859:21:3" - }, - "returnParameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2073, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16902:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2072, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16902:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16901:6:3" - }, - "scope": 2390, - "src": "16836:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2114, - "nodeType": "Block", - "src": "17326:304:3", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "17336:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17336:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2103, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17390:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "17361:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17361:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17336:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2107, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17588:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2106, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17575:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2109, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "17604:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17622:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17575:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2098, - "id": 2113, - "nodeType": "Return", - "src": "17568:55:3" - } - ] - }, - "documentation": "@notice Returns if a darknode can be deregistered. This is true if the\n darknodes is in the registered state and has not attempted to\n deregister yet.", - "id": 2115, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregisterable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17278:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17278:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:21:3" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17320:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17320:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17319:6:3" - }, - "scope": 2390, - "src": "17252:378:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2144, - "nodeType": "Block", - "src": "17899:212:3", - "statements": [ - { - "assignments": [ - 2123 - ], - "declarations": [ - { - "constant": false, - "id": 2123, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17909:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "17959:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2124, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17932:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "17932:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17932:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17909:62:3" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17981:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17981:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2133, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "18035:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2131, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18006:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18006:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18006:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17981:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2136, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "18064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18080:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18064:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2139, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "18085:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18085:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18064:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2121, - "id": 2143, - "nodeType": "Return", - "src": "18057:47:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the refunded state. This is true\n for darknodes that have never been registered, or darknodes that have\n been deregistered and refunded.", - "id": 2145, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefunded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2117, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17851:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17851:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17850:21:3" - }, - "returnParameters": { - "id": 2121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2120, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17893:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17893:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17892:6:3" - }, - "scope": 2390, - "src": "17831:280:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2164, - "nodeType": "Block", - "src": "18336:125:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2153, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18368:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2152, - "name": "isDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "18353:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18353:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2157, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18413:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2155, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18384:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18384:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18384:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2159, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18429:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "18429:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18384:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18353:101:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2151, - "id": 2163, - "nodeType": "Return", - "src": "18346:108:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is refundable. This is true for darknodes\n that have been in the deregistered state for one full epoch.", - "id": 2165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefundable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2147, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18288:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18287:21:3" - }, - "returnParameters": { - "id": 2151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2150, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18330:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2149, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18330:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18329:6:3" - }, - "scope": 2390, - "src": "18266:195:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2177, - "nodeType": "Block", - "src": "18603:70:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2173, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2167, - "src": "18640:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2174, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "18653:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2172, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18620:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2171, - "id": 2176, - "nodeType": "Return", - "src": "18613:53:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the registered state.", - "id": 2178, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2167, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18555:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18555:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18554:21:3" - }, - "returnParameters": { - "id": 2171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18597:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18597:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18596:6:3" - }, - "scope": 2390, - "src": "18533:140:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "18842:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "18879:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18892:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2185, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18859:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18859:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2184, - "id": 2189, - "nodeType": "Return", - "src": "18852:54:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state last epoch.", - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInPreviousEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18793:21:3" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18836:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18836:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18835:6:3" - }, - "scope": 2390, - "src": "18757:156:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2240, - "nodeType": "Block", - "src": "19218:509:3", - "statements": [ - { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19228:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19228:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2206, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2204, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19278:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2202, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19251:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "19251:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19251:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19228:62:3" - }, - { - "assignments": [ - 2208 - ], - "declarations": [ - { - "constant": false, - "id": 2208, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19300:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19300:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2213, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19354:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2209, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19325:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "19325:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19300:66:3" - }, - { - "assignments": [ - 2215 - ], - "declarations": [ - { - "constant": false, - "id": 2215, - "name": "registered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19376:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2214, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19376:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2224, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2216, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19410:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19394:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2219, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19415:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2220, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19431:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19431:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19415:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19394:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19376:73:3" - }, - { - "assignments": [ - 2226 - ], - "declarations": [ - { - "constant": false, - "id": 2226, - "name": "notDeregistered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19459:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19459:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2235, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2227, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19482:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19500:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19482:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2230, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19505:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2231, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19522:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19522:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19505:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19482:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19459:81:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2236, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "19691:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2237, - "name": "notDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "19705:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19691:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2199, - "id": 2239, - "nodeType": "Return", - "src": "19684:36:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state for a given\n epoch.\n @param _darknodeID The ID of the darknode\n @param _epoch One of currentEpoch, previousEpoch", - "id": 2241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19148:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19148:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2195, - "name": "_epoch", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19169:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 2194, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "19169:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19147:42:3" - }, - "returnParameters": { - "id": 2199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19212:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19212:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19211:6:3" - }, - "scope": 2390, - "src": "19119:608:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2360, - "nodeType": "Block", - "src": "20170:1037:3", - "statements": [ - { - "assignments": [ - 2254 - ], - "declarations": [ - { - "constant": false, - "id": 2254, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20180:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2256, - "initialValue": { - "argumentTypes": null, - "id": 2255, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "20196:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20180:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2257, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20225:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20216:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2265, - "nodeType": "IfStatement", - "src": "20212:61:3", - "trueBody": { - "id": 2264, - "nodeType": "Block", - "src": "20228:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2260, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2261, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "20250:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20242:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "20242:20:3" - } - ] - } - }, - { - "assignments": [ - 2269 - ], - "declarations": [ - { - "constant": false, - "id": 2269, - "name": "nodes", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20283:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20283:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20283:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2273, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20322:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20308:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 2270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20312:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20312:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20308:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20283:45:3" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20388:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20400:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20388:13:3" - }, - { - "assignments": [ - 2281 - ], - "declarations": [ - { - "constant": false, - "id": 2281, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20411:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2283, - "initialValue": { - "argumentTypes": null, - "id": 2282, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "20426:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20411:21:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2284, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20446:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20462:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20454:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20454:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20446:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2296, - "nodeType": "IfStatement", - "src": "20442:69:3", - "trueBody": { - "id": 2295, - "nodeType": "Block", - "src": "20466:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2289, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20480:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "20487:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2492, - "src": "20487:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20487:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20480:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "20480:20:3" - } - ] - } - }, - { - "body": { - "id": 2356, - "nodeType": "Block", - "src": "20609:570:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2300, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20643:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20635:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20635:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20627:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2307, - "nodeType": "IfStatement", - "src": "20623:62:3", - "trueBody": { - "id": 2306, - "nodeType": "Block", - "src": "20647:38:3", - "statements": [ - { - "id": 2305, - "nodeType": "Break", - "src": "20665:5:3" - } - ] - } - }, - { - "assignments": [ - 2309 - ], - "declarations": [ - { - "constant": false, - "id": 2309, - "name": "includeNext", - "nodeType": "VariableDeclaration", - "scope": 2356, - "src": "20766:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2310, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20766:16:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2311, - "name": "_usePreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2247, - "src": "20800:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2325, - "nodeType": "Block", - "src": "20905:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2319, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20923:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2321, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20950:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2320, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "20937:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20937:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20923:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2324, - "nodeType": "ExpressionStatement", - "src": "20923:32:3" - } - ] - }, - "id": 2326, - "nodeType": "IfStatement", - "src": "20796:174:3", - "trueBody": { - "id": 2318, - "nodeType": "Block", - "src": "20819:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20837:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2314, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2313, - "name": "isRegisteredInPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "20851:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20851:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20837:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "20837:47:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20987:12:3", - "subExpression": { - "argumentTypes": null, - "id": 2327, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20988:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2338, - "nodeType": "IfStatement", - "src": "20983:100:3", - "trueBody": { - "id": 2337, - "nodeType": "Block", - "src": "21001:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2329, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2332, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2330, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21026:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21026:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21026:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21019:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2335, - "nodeType": "ExpressionStatement", - "src": "21019:23:3" - }, - { - "id": 2336, - "nodeType": "Continue", - "src": "21060:8:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2339, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21096:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2341, - "indexExpression": { - "argumentTypes": null, - "id": 2340, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21102:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21096:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2342, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21107:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21096:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2344, - "nodeType": "ExpressionStatement", - "src": "21096:15:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2348, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21143:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2346, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21132:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21132:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21132:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21125:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2351, - "nodeType": "ExpressionStatement", - "src": "21125:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2352, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21162:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21167:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21162:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "21162:6:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2297, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "20598:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2298, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20602:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2357, - "nodeType": "WhileStatement", - "src": "20591:588:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21195:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2252, - "id": 2359, - "nodeType": "Return", - "src": "21188:12:3" - } - ] - }, - "documentation": "@notice Returns a list of darknodes registered for either the current\n or the previous epoch. See `getDarknodes` for documentation on the\n parameters `_start` and `_count`.\n @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n the current epoch.", - "id": 2361, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodesFromEpochs", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2243, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20074:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20074:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20090:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2247, - "name": "_usePreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20106:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20106:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20073:56:3" - }, - "returnParameters": { - "id": 2252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20152:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2250, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20152:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20151:18:3" - }, - "scope": 2390, - "src": "20042:1165:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2388, - "nodeType": "Block", - "src": "21330:303:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2369, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21423:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2373, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "21465:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "21436:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "21436:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7253, - "src": "21436:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21436:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2366, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21388:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2606, - "src": "21388:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21388:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "21388:99:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2377, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21497:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21547:1:3", - "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": 2378, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21521:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "21521:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21521:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21497:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "21497:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21614:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2384, - "name": "LogDarknodeDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "21590:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21590:36:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2387, - "nodeType": "EmitStatement", - "src": "21585:41:3" - } - ] - }, - "documentation": "Private function called by `deregister` and `slash`", - "id": 2389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deregisterDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2363, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2389, - "src": "21301:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21301:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21300:21:3" - }, - "returnParameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [], - "src": "21330:0:3" - }, - "scope": 2390, - "src": "21273:360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 2391, - "src": "375:21260:3" - } - ], - "src": "0:21636:3" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -29795,183 +1037,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:46:30.116Z", - "devdoc": { - "methods": { - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_minimumBond": "The minimum bond amount that can be submitted by a Darknode.", - "_minimumEpochInterval": "The minimum number of blocks between epochs.", - "_minimumPodSize": "The minimum size of a Darknode pod.", - "_renAddress": "The address of the RenToken contract.", - "_storeAddress": "The address of the DarknodeRegistryStore contract." - } - }, - "deregister(address)": { - "params": { - "_darknodeID": "The darknode ID that will be deregistered. The caller of this method store.darknodeRegisteredAt(_darknodeID) must be" - } - }, - "getDarknodeBond(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the bond for." - } - }, - "getDarknodeOwner(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the owner for." - } - }, - "getDarknodePublicKey(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the public key for." - } - }, - "getDarknodes(address,uint256)": { - "params": { - "_count": "The number of darknodes to retrieve starting from _start. If _count is 0, all of the darknodes from _start are retrieved. If _count is more than the remaining number of registered darknodes, the rest of the list will contain 0x0s.", - "_start": "A darknode ID used as an offset for the list. If _start is 0x0, the first dark node will be used. _start won't be included it is not registered for the epoch." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "isPendingRegistration(address)": { - "params": { - "_darknodeID": "The ID of the darknode to return" - } - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "refund(address)": { - "params": { - "_darknodeID": "The darknode ID that will be refunded. The caller of this method must be the owner of this darknode." - } - }, - "register(address,bytes)": { - "params": { - "_darknodeID": "The darknode ID that will be registered.", - "_publicKey": "The public key of the darknode. It is stored to allow other darknodes and traders to encrypt messages to the trader." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "slash(address,address,address)": { - "params": { - "_challenger1": "The first of the two darknodes who submitted the challenge", - "_challenger2": "The second of the two darknodes who submitted the challenge", - "_prover": "The guilty prover whose bond is being slashed" - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "transferStoreOwnership(address)": { - "params": { - "_newOwner": "The address to transfer the ownership to." - } - }, - "updateMinimumBond(uint256)": { - "params": { - "_nextMinimumBond": "The minimum bond amount that can be submitted by a darknode." - } - }, - "updateMinimumEpochInterval(uint256)": { - "params": { - "_nextMinimumEpochInterval": "The minimum number of blocks between epochs." - } - }, - "updateMinimumPodSize(uint256)": { - "params": { - "_nextMinimumPodSize": "The minimum size of a pod." - } - }, - "updateSlasher(address)": { - "params": { - "_slasher": "The new slasher address." - } - } - } - }, - "userdoc": { - "methods": { - "claimStoreOwnership()": { - "notice": "Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another Darknode Registry." - }, - "constructor": "The contract constructor. ", - "deregister(address)": { - "notice": "Deregister a darknode. The darknode will not be deregistered until the end of the epoch. After another epoch, the bond can be refunded by calling the refund method." - }, - "epoch()": { - "notice": "Progress the epoch if it is possible to do so. This captures the current timestamp and current blockhash and overrides the current epoch." - }, - "getDarknodeBond(address)": { - "notice": "Retrieves the bond amount of a darknode in 10^-18 REN." - }, - "getDarknodeOwner(address)": { - "notice": "Retrieves the address of the account that registered a darknode." - }, - "getDarknodePublicKey(address)": { - "notice": "Retrieves the encryption public key of the darknode." - }, - "getDarknodes(address,uint256)": { - "notice": "Retrieves a list of darknodes which are registered for the current epoch." - }, - "getPreviousDarknodes(address,uint256)": { - "notice": "Retrieves a list of darknodes which were registered for the previous epoch. See `getDarknodes` for the parameter documentation." - }, - "isDeregisterable(address)": { - "notice": "Returns if a darknode can be deregistered. This is true if the darknodes is in the registered state and has not attempted to deregister yet." - }, - "isDeregistered(address)": { - "notice": "Returns if a darknode is in the deregistered state." - }, - "isPendingDeregistration(address)": { - "notice": "Returns if a darknode is in the pending deregistered state. In this state a darknode is still considered registered." - }, - "isPendingRegistration(address)": { - "notice": "Returns whether a darknode is scheduled to become registered at next epoch." - }, - "isRefundable(address)": { - "notice": "Returns if a darknode is refundable. This is true for darknodes that have been in the deregistered state for one full epoch." - }, - "isRefunded(address)": { - "notice": "Returns if a darknode is in the refunded state. This is true for darknodes that have never been registered, or darknodes that have been deregistered and refunded." - }, - "isRegistered(address)": { - "notice": "Returns if a darknode is in the registered state." - }, - "isRegisteredInPreviousEpoch(address)": { - "notice": "Returns if a darknode was in the registered state last epoch." - }, - "refund(address)": { - "notice": "Refund the bond of a deregistered darknode. This will make the darknode available for registration again. Anyone can call this function but the bond will always be refunded to the darknode owner. " - }, - "register(address,bytes)": { - "notice": "Register a darknode and transfer the bond to this contract. Before registering, the bond transfer must be approved in the REN contract. The caller must provide a public encryption key for the darknode. The darknode will remain pending registration until the next epoch. Only after this period can the darknode be deregistered. The caller of this method will be stored as the owner of the darknode. " - }, - "slash(address,address,address)": { - "notice": "Allow the DarknodeSlasher contract to slash half of a darknode's bond and deregister it. The bond is distributed as follows: 1/2 is kept by the guilty prover 1/8 is rewarded to the first challenger 1/8 is rewarded to the second challenger 1/4 becomes unassigned" - }, - "transferStoreOwnership(address)": { - "notice": "Allows the contract owner to initiate an ownership transfer of the DarknodeRegistryStore. " - }, - "updateMinimumBond(uint256)": { - "notice": "Allows the contract owner to update the minimum bond." - }, - "updateMinimumEpochInterval(uint256)": { - "notice": "Allows the contract owner to update the minimum epoch interval." - }, - "updateMinimumPodSize(uint256)": { - "notice": "Allows the contract owner to update the minimum pod size." - }, - "updateSlasher(address)": { - "notice": "Allow the contract owner to update the DarknodeSlasher contract address." - } - }, - "notice": "DarknodeRegistry is responsible for the registration and deregistration of Darknodes." - } + "updatedAt": "2019-07-16T00:46:30.116Z" } \ No newline at end of file diff --git a/build/localnet/DarknodeRegistryStore.json b/build/localnet/DarknodeRegistryStore.json index d6f331d9..54f8cad2 100644 --- a/build/localnet/DarknodeRegistryStore.json +++ b/build/localnet/DarknodeRegistryStore.json @@ -334,7245 +334,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeDeregisteredAt\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"begin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"},{\"name\":\"deregisteredAt\",\"type\":\"uint256\"}],\"name\":\"updateDarknodeDeregisteredAt\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"removeDarknode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ren\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_darknodeOwner\",\"type\":\"address\"},{\"name\":\"_bond\",\"type\":\"uint256\"},{\"name\":\"_publicKey\",\"type\":\"bytes\"},{\"name\":\"_registeredAt\",\"type\":\"uint256\"},{\"name\":\"_deregisteredAt\",\"type\":\"uint256\"}],\"name\":\"appendDarknode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"next\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeRegisteredAt\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodePublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"},{\"name\":\"decreasedBond\",\"type\":\"uint256\"}],\"name\":\"updateDarknodeBond\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_ren\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"appendDarknode(address,address,uint256,bytes,uint256,uint256)\":{\"params\":{\"_bond\":\"The darknode's bond value\",\"_darknodeID\":\"The darknode's ID.\",\"_darknodeOwner\":\"The darknode's owner's address\",\"_deregisteredAt\":\"The time stamp when the darknode is deregistered.\",\"_publicKey\":\"The darknode's public key\",\"_registeredAt\":\"The time stamp when the darknode is registered.\"}},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_ren\":\"The address of the RenToken contract.\"}},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"appendDarknode(address,address,uint256,bytes,uint256,uint256)\":{\"notice\":\"Instantiates a darknode and appends it to the darknodes linked-list. \"},\"begin()\":{\"notice\":\"Returns the address of the first darknode in the store\"},\"constructor\":\"The contract constructor. \",\"darknodeBond(address)\":{\"notice\":\"Returns the bond of a given darknode.\"},\"darknodeDeregisteredAt(address)\":{\"notice\":\"Returns the deregistration time of a given darknode.\"},\"darknodeOwner(address)\":{\"notice\":\"Returns the owner of a given darknode.\"},\"darknodePublicKey(address)\":{\"notice\":\"Returns the encryption public key of a given darknode.\"},\"darknodeRegisteredAt(address)\":{\"notice\":\"Returns the registration time of a given darknode.\"},\"next(address)\":{\"notice\":\"Returns the address of the next darknode in the store after the given address.\"},\"removeDarknode(address)\":{\"notice\":\"Removes a darknode from the store and transfers its bond to the owner of this contract.\"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"updateDarknodeBond(address,uint256)\":{\"notice\":\"Updates the bond of a darknode. The new bond must be smaller than the previous bond of the darknode.\"},\"updateDarknodeDeregisteredAt(address,uint256)\":{\"notice\":\"Updates the deregistration timestamp of a darknode.\"}},\"notice\":\"This contract stores data and funds for the DarknodeRegistry contract. The data / fund logic and storage have been separated to improve upgradability.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":\"DarknodeRegistryStore\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620015b0380380620015b0833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b5050602090910151600180546001600160a01b0319163317908190556040519294509092506001600160a01b0316906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38151620000eb90600290602085019062000113565b50600580546001600160a01b0319166001600160a01b039290921691909117905550620001b8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015657805160ff191683800117855562000186565b8280016001018555821562000186579182015b828111156200018657825182559160200191906001019062000169565b506200019492915062000198565b5090565b620001b591905b808211156200019457600081556001016200019f565b90565b6113e880620001c86000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063a3078815116100a2578063e2d7c64c11610071578063e2d7c64c1461030f578063ee594a5014610335578063f2fde38b146103d0578063fbc402fc146103f6578063ffa1ad741461042257610116565b8063a307881514610207578063a85ef5791461022d578063ab73e316146102c3578063cad41357146102e957610116565b80634e71e0c8116100e95780634e71e0c8146101cb578063715018a6146101d35780638a9b4067146101db5780638da5cb5b146101e35780638f32d59b146101eb57610116565b806301930b6e1461011b5780631bce6ff3146101535780633ac39d4b1461017757806341b44392146101a5575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b031661042a565b60408051918252519081900360200190f35b61015b610496565b604080516001600160a01b039092168252519081900360200190f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104f2565b005b6101a3600480360360208110156101bb57600080fd5b50356001600160a01b031661055c565b6101a36106ee565b6101a36107b5565b61015b610849565b61015b610858565b6101f3610867565b604080519115158252519081900360200190f35b61015b6004803603602081101561021d57600080fd5b50356001600160a01b0316610878565b6101a3600480360360c081101561024357600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561027e57600080fd5b82018360208201111561029057600080fd5b803590602001918460018302840111640100000000831117156102b257600080fd5b9193509150803590602001356108e3565b61015b600480360360208110156102d957600080fd5b50356001600160a01b0316610a1d565b610141600480360360208110156102ff57600080fd5b50356001600160a01b0316610a7a565b6101416004803603602081101561032557600080fd5b50356001600160a01b0316610ae5565b61035b6004803603602081101561034b57600080fd5b50356001600160a01b0316610b50565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039557818101518382015260200161037d565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a3600480360360208110156103e657600080fd5b50356001600160a01b0316610c48565b6101a36004803603604081101561040c57600080fd5b506001600160a01b038135169060200135610cb4565b61035b610e85565b6000610434610867565b6104765760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152600360208190526040909120015490565b60006104a0610867565b6104e25760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6104ec6004610f10565b90505b90565b6104fa610867565b61053c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0390911660009081526003602081905260409091200155565b610564610867565b6105a65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600360208190526040822060018101805482546001600160a01b0319168355908490556002820184905591810183905590916105f46004830182611285565b5050610601600483610f2f565b6005546001600160a01b031663a9059cbb61061a610858565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b50516106ea5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146107505760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6107bd610867565b6107ff5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6005546001600160a01b031681565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b6000610882610867565b6108c45760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b039081166000908152600360205260409020541690565b6108eb610867565b61092d5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6109356112cc565b6040518060a00160405280886001600160a01b0316815260200187815260200184815260200183815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160a01b038b8116825260036020818152604093849020865181546001600160a01b0319169416939093178355858101516001840155928501516002830155606085015190820155608084015180519495508594919350610a04926004850192910190611304565b50905050610a13600489611011565b5050505050505050565b6000610a27610867565b610a695760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b610a74600483611024565b92915050565b6000610a84610867565b610ac65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206001015490565b6000610aef610867565b610b315760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206002015490565b6060610b5a610867565b610b9c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610c3c5780601f10610c1157610100808354040283529160200191610c3c565b820191906000526020600020905b815481529060010190602001808311610c1f57829003601f168201915b50505050509050919050565b610c50610867565b610c925760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cbc610867565b610cfe5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902060010154808210610d715760408051600160e51b62461bcd02815260206004820152601260248201527f626f6e64206e6f74206465637265617365640000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526003602052604090206001018390556005541663a9059cbb610da1610858565b610db1848663ffffffff61109916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b5051610e805760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610f085780601f10610edd57610100808354040283529160200191610f08565b820191906000526020600020905b815481529060010190602001808311610eeb57829003601f168201915b505050505081565b600080805260209190915260409020600101546001600160a01b031690565b610f3982826110f9565b610f7e5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b038116610f91576106ea565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b6106ea8261101e84611118565b8361113a565b600061103083836110f9565b6110755760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6000828211156110f35760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03166000908152602091909152604090205460ff1690565b60008080526020829052604090205461010090046001600160a01b0316919050565b61114483826110f9565b156111995760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111a383836110f9565b806111b557506001600160a01b038216155b6111fa5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff1916179055565b50805460018160011615610100020316600290046000825580601f106112ab57506112c9565b601f0160209004906000526020600020908101906112c99190611382565b50565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134557805160ff1916838001178555611372565b82800160010185558215611372579182015b82811115611372578251825591602001919060010190611357565b5061137e929150611382565b5090565b6104ef91905b8082111561137e576000815560010161138856fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820b02bc8a49b5e057a64ff74c79ba9139860c4d6b30f27acfe35085d38de919f390029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063a3078815116100a2578063e2d7c64c11610071578063e2d7c64c1461030f578063ee594a5014610335578063f2fde38b146103d0578063fbc402fc146103f6578063ffa1ad741461042257610116565b8063a307881514610207578063a85ef5791461022d578063ab73e316146102c3578063cad41357146102e957610116565b80634e71e0c8116100e95780634e71e0c8146101cb578063715018a6146101d35780638a9b4067146101db5780638da5cb5b146101e35780638f32d59b146101eb57610116565b806301930b6e1461011b5780631bce6ff3146101535780633ac39d4b1461017757806341b44392146101a5575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b031661042a565b60408051918252519081900360200190f35b61015b610496565b604080516001600160a01b039092168252519081900360200190f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104f2565b005b6101a3600480360360208110156101bb57600080fd5b50356001600160a01b031661055c565b6101a36106ee565b6101a36107b5565b61015b610849565b61015b610858565b6101f3610867565b604080519115158252519081900360200190f35b61015b6004803603602081101561021d57600080fd5b50356001600160a01b0316610878565b6101a3600480360360c081101561024357600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561027e57600080fd5b82018360208201111561029057600080fd5b803590602001918460018302840111640100000000831117156102b257600080fd5b9193509150803590602001356108e3565b61015b600480360360208110156102d957600080fd5b50356001600160a01b0316610a1d565b610141600480360360208110156102ff57600080fd5b50356001600160a01b0316610a7a565b6101416004803603602081101561032557600080fd5b50356001600160a01b0316610ae5565b61035b6004803603602081101561034b57600080fd5b50356001600160a01b0316610b50565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039557818101518382015260200161037d565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a3600480360360208110156103e657600080fd5b50356001600160a01b0316610c48565b6101a36004803603604081101561040c57600080fd5b506001600160a01b038135169060200135610cb4565b61035b610e85565b6000610434610867565b6104765760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152600360208190526040909120015490565b60006104a0610867565b6104e25760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6104ec6004610f10565b90505b90565b6104fa610867565b61053c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0390911660009081526003602081905260409091200155565b610564610867565b6105a65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600360208190526040822060018101805482546001600160a01b0319168355908490556002820184905591810183905590916105f46004830182611285565b5050610601600483610f2f565b6005546001600160a01b031663a9059cbb61061a610858565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b50516106ea5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146107505760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6107bd610867565b6107ff5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6005546001600160a01b031681565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b6000610882610867565b6108c45760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b039081166000908152600360205260409020541690565b6108eb610867565b61092d5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6109356112cc565b6040518060a00160405280886001600160a01b0316815260200187815260200184815260200183815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160a01b038b8116825260036020818152604093849020865181546001600160a01b0319169416939093178355858101516001840155928501516002830155606085015190820155608084015180519495508594919350610a04926004850192910190611304565b50905050610a13600489611011565b5050505050505050565b6000610a27610867565b610a695760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b610a74600483611024565b92915050565b6000610a84610867565b610ac65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206001015490565b6000610aef610867565b610b315760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206002015490565b6060610b5a610867565b610b9c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610c3c5780601f10610c1157610100808354040283529160200191610c3c565b820191906000526020600020905b815481529060010190602001808311610c1f57829003601f168201915b50505050509050919050565b610c50610867565b610c925760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cbc610867565b610cfe5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902060010154808210610d715760408051600160e51b62461bcd02815260206004820152601260248201527f626f6e64206e6f74206465637265617365640000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526003602052604090206001018390556005541663a9059cbb610da1610858565b610db1848663ffffffff61109916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b5051610e805760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610f085780601f10610edd57610100808354040283529160200191610f08565b820191906000526020600020905b815481529060010190602001808311610eeb57829003601f168201915b505050505081565b600080805260209190915260409020600101546001600160a01b031690565b610f3982826110f9565b610f7e5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b038116610f91576106ea565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b6106ea8261101e84611118565b8361113a565b600061103083836110f9565b6110755760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6000828211156110f35760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03166000908152602091909152604090205460ff1690565b60008080526020829052604090205461010090046001600160a01b0316919050565b61114483826110f9565b156111995760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111a383836110f9565b806111b557506001600160a01b038216155b6111fa5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff1916179055565b50805460018160011615610100020316600290046000825580601f106112ab57506112c9565b601f0160209004906000526020600020908101906112c99190611382565b50565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134557805160ff1916838001178555611372565b82800160010185558215611372579182015b82811115611372578251825591602001919060010190611357565b5061137e929150611382565b5090565b6104ef91905b8082111561137e576000815560010161138856fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820b02bc8a49b5e057a64ff74c79ba9139860c4d6b30f27acfe35085d38de919f390029", - "sourceMap": "368:5752:4:-;;;2200:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:135:4;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:135:4;;;;;;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;;2200:135:4;;;;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;2200:135:4;562:40:13;2200:135:4;;-1:-1:-1;2200:135:4;;-1:-1:-1;;;;;;595:6:13;;528;;562:40;;528:6;;562:40;2290:18:4;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;2318:3:4;:10;;-1:-1:-1;;;;;;2318:10:4;-1:-1:-1;;;;;2318:10:4;;;;;;;;;;-1:-1:-1;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:5752:4;;;-1:-1:-1;368:5752:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "368:5752:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5724:161:4;-1:-1:-1;;;;;5724:161:4;;:::i;:::-;;;;;;;;;;;;;;;;3469:109;;;:::i;:::-;;;;-1:-1:-1;;;;;3469:109:4;;;;;;;;;;;;;;4828:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4828:178:4;;;;;;;;:::i;:::-;;3942:293;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3942:293:4;-1:-1:-1;;;;;3942:293:4;;:::i;2166:177:13:-;;;:::i;1688:137::-;;;:::i;2002:19:4:-;;;:::i;672:77:13:-;;;:::i;1244:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;5067:151:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5067:151:4;-1:-1:-1;;;;;5067:151:4;;:::i;2806:586::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2806:586:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2806:586:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2806:586:4;;;;;;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;2806:586:4;;-1:-1:-1;2806:586:4;-1:-1:-1;2806:586:4;;;;;;;:::i;3687:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3687:137:4;-1:-1:-1;;;;;3687:137:4;;:::i;5278:141::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5278:141:4;-1:-1:-1;;;;;5278:141:4;;:::i;5492:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5492:157:4;-1:-1:-1;;;;;5492:157:4;;:::i;5962:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5962:156:4;-1:-1:-1;;;;;5962:156:4;;:::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;5962:156:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:101:13;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;4366:388:4:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4366:388:4;;;;;;;;:::i;451:21::-;;;:::i;5724:161::-;5809:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5835:28:4;;;;;:16;:28;;;;;;;;:43;;;5724:161::o;3469:109::-;3518:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3544:27:4;3561:9;3544:16;:27::i;:::-;3537:34;;923:1:13;3469:109:4;:::o;4828:178::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;4939:28:4;;;;;;;:16;:28;;;;;;;;:43;:60;4828:178::o;3942:293::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;4030:28:4;;4015:12;4030:28;;;:16;:28;;;;;;;:33;;;;;4073:35;;-1:-1:-1;;;;;;4073:35:4;;;;;;;;;;;;;;;;;;;4030:33;;4073:35;;;;4015:12;4073:35;:::i;:::-;;;4118:40;4136:9;4147:10;4118:17;:40::i;:::-;4176:3;;-1:-1:-1;;;;;4176:3:4;:12;4189:7;:5;:7::i;:::-;4198:4;4176:27;;;;;;;;;;;;;-1:-1:-1;;;;;4176:27:4;-1:-1:-1;;;;;4176:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4176:27:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4176:27:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4176:27:4;4168:60;;;;;-1:-1:-1;;;;;4168:60:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:13;3942:293:4;:::o;2166:177:13:-;1091:13;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:13;;;-1:-1:-1;;;;;2289:13:13;;2280:22;;;;2310:26;;;2166:177::o;1688:137::-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;2002:19:4:-;;;-1:-1:-1;;;;;2002:19:4;;:::o;672:77:13:-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;5067:151:4:-;5143:15;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5177:28:4;;;;;;;:16;:28;;;;;:34;;;5067:151::o;2806:586::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3056:24:4;;:::i;:::-;3083:201;;;;;;;;3113:14;-1:-1:-1;;;;;3083:201:4;;;;;3147:5;3083:201;;;;3215:13;3083:201;;;;3258:15;3083:201;;;;3177:10;;3083:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;3083:201:4;;;;-1:-1:-1;;;;;;;3294:29:4;;;;;:16;:29;;;;;;;;;:40;;;;-1:-1:-1;;;;;;3294:40:4;;;;;;;;;;;;;-1:-1:-1;3294:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3294:40:4;;:29;;-1:-1:-1;3294:40:4;;;;;;;;;;:::i;:::-;;;;;3344:41;3362:9;3373:11;3344:17;:41::i;:::-;923:1:13;2806:586:4;;;;;;;:::o;3687:137::-;3753:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3779:38:4;3795:9;3806:10;3779:15;:38::i;:::-;3772:45;3687:137;-1:-1:-1;;3687:137:4:o;5278:141::-;5353:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5379:28:4;;;;;:16;:28;;;;;:33;;;;5278:141::o;5492:157::-;5575:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5601:28:4;;;;;:16;:28;;;;;:41;;;;5492:157::o;5962:156::-;6042:12;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:28:4;;;;;;:16;:28;;;;;;;;;:38;;6066:45;;;;;;-1:-1:-1;;6066:45:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:38;;6066:45;;6073:38;6066:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5962:156;;;:::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:13;-1:-1:-1;;;;;2045:24:13;;;;;;;;;;1975:101::o;4366:388:4:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;4489:28:4;;4466:20;4489:28;;;:16;:28;;;;;:33;;;4540:28;;;4532:59;;;;;-1:-1:-1;;;;;4532:59:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4601:28:4;;;;;;;:16;:28;;;;;:33;;:49;;;4668:3;;;:12;4681:7;:5;:7::i;:::-;4690:31;:12;4707:13;4690:31;:16;:31;:::i;:::-;4668:54;;;;;;;;;;;;;-1:-1:-1;;;;;4668:54:4;-1:-1:-1;;;;;4668:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4668:54:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4668:54:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4668:54:4;4660:87;;;;;-1:-1:-1;;;;;4660:87:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:13;4366:388:4;;:::o;451:21::-;;;;;;;;;;;;;;-1:-1:-1;;451:21:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4696:110:16:-;4753:7;4779:15;;;;;;;;;;;:20;;;-1:-1:-1;;;;;4779:20:16;;4696:110::o;2757:514::-;2833:20;2842:4;2848;2833:8;:20::i;:::-;2825:44;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2883:12:16;;2879:49;;2911:7;;2879:49;-1:-1:-1;;;;;2949:15:16;;;2937:9;2949:15;;;;;;;;;;;;:24;;;2995:20;;;;;2949:24;;;;;;;3026:12;;;;;;:17;;;:21;;2995:20;;;;-1:-1:-1;;;;;;3026:21:16;;;;;;;;3057:12;;;;;;:25;;-1:-1:-1;;;;;;3057:25:16;;;;;;;;3202:15;;;;:30;;-1:-1:-1;;;;;;3242:22:16;;;;;;;;2757:514::o;3808:163::-;3930:34;3942:4;3948:9;3952:4;3948:3;:9::i;:::-;3959:4;3930:11;:34::i;5148:177::-;5218:7;5245:20;5254:4;5260;5245:8;:20::i;:::-;5237:44;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5298:15:16;;;:9;:15;;;;;;;;;;;;:20;;;;;5148:177::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;4334:126:16:-;-1:-1:-1;;;;;4431:15:16;4408:4;4431:15;;;;;;;;;;;:22;;;;4334:126::o;5030:112::-;5085:7;5111:15;;;;;;;;;;:24;;;;-1:-1:-1;;;;;5111:24:16;5030:112;;;:::o;1906:541::-;2007:23;2016:4;2022:7;2007:8;:23::i;:::-;2006:24;1998:52;;;;;-1:-1:-1;;;;;1998:52:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:22;2077:4;2083:6;2068:8;:22::i;:::-;:40;;;-1:-1:-1;;;;;;2094:14:16;;;2068:40;2060:64;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2208:17:16;;;2196:9;2208:17;;;;;;;;;;;;:22;;;;;;2241:18;;;;;;;;;:36;;-1:-1:-1;;;;;;2241:36:16;;;2208:22;2241:36;;;;;;2287:23;;;:27;;2208:22;;;;-1:-1:-1;;;;;;2287:27:16;;;;;;;;2324:32;;;;;;;;;;2366:12;;;;;;:31;;;;;;;;;;;;;;;2408:18;;;;:32;;-1:-1:-1;;2408:32:16;;;;1906:541::o;368:5752:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:5752:4;;;-1:-1:-1;368:5752:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../libraries/Claimable.sol\";\nimport \"../libraries/LinkedList.sol\";\nimport \"../RenToken/RenToken.sol\";\n\n/// @notice This contract stores data and funds for the DarknodeRegistry\n/// contract. The data / fund logic and storage have been separated to improve\n/// upgradability.\ncontract DarknodeRegistryStore is Claimable {\n using SafeMath for uint256;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice Darknodes are stored in the darknode struct. The owner is the\n /// address that registered the darknode, the bond is the amount of REN that\n /// was transferred during registration, and the public key is the\n /// encryption key that should be used when sending sensitive information to\n /// the darknode.\n struct Darknode {\n // The owner of a Darknode is the address that called the register\n // function. The owner is the only address that is allowed to\n // deregister the Darknode, unless the Darknode is slashed for\n // malicious behavior.\n address payable owner;\n\n // The bond is the amount of REN submitted as a bond by the Darknode.\n // This amount is reduced when the Darknode is slashed for malicious\n // behavior.\n uint256 bond;\n\n // The block number at which the Darknode is considered registered.\n uint256 registeredAt;\n\n // The block number at which the Darknode is considered deregistered.\n uint256 deregisteredAt;\n\n // The public key used by this Darknode for encrypting sensitive data\n // off chain. It is assumed that the Darknode has access to the\n // respective private key, and that there is an agreement on the format\n // of the public key.\n bytes publicKey;\n }\n\n /// Registry data.\n mapping(address => Darknode) private darknodeRegistry;\n LinkedList.List private darknodes;\n\n // RenToken.\n RenToken public ren;\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _ren The address of the RenToken contract.\n constructor(\n string memory _VERSION,\n RenToken _ren\n ) public {\n VERSION = _VERSION;\n ren = _ren;\n }\n\n /// @notice Instantiates a darknode and appends it to the darknodes\n /// linked-list.\n ///\n /// @param _darknodeID The darknode's ID.\n /// @param _darknodeOwner The darknode's owner's address\n /// @param _bond The darknode's bond value\n /// @param _publicKey The darknode's public key\n /// @param _registeredAt The time stamp when the darknode is registered.\n /// @param _deregisteredAt The time stamp when the darknode is deregistered.\n function appendDarknode(\n address _darknodeID,\n address payable _darknodeOwner,\n uint256 _bond,\n bytes calldata _publicKey,\n uint256 _registeredAt,\n uint256 _deregisteredAt\n ) external onlyOwner {\n Darknode memory darknode = Darknode({\n owner: _darknodeOwner,\n bond: _bond,\n publicKey: _publicKey,\n registeredAt: _registeredAt,\n deregisteredAt: _deregisteredAt\n });\n darknodeRegistry[_darknodeID] = darknode;\n LinkedList.append(darknodes, _darknodeID);\n }\n\n /// @notice Returns the address of the first darknode in the store\n function begin() external view onlyOwner returns(address) {\n return LinkedList.begin(darknodes);\n }\n\n /// @notice Returns the address of the next darknode in the store after the\n /// given address.\n function next(address darknodeID) external view onlyOwner returns(address) {\n return LinkedList.next(darknodes, darknodeID);\n }\n\n /// @notice Removes a darknode from the store and transfers its bond to the\n /// owner of this contract.\n function removeDarknode(address darknodeID) external onlyOwner {\n uint256 bond = darknodeRegistry[darknodeID].bond;\n delete darknodeRegistry[darknodeID];\n LinkedList.remove(darknodes, darknodeID);\n require(ren.transfer(owner(), bond), \"bond transfer failed\");\n }\n\n /// @notice Updates the bond of a darknode. The new bond must be smaller\n /// than the previous bond of the darknode.\n function updateDarknodeBond(address darknodeID, uint256 decreasedBond) external onlyOwner {\n uint256 previousBond = darknodeRegistry[darknodeID].bond;\n require(decreasedBond < previousBond, \"bond not decreased\");\n darknodeRegistry[darknodeID].bond = decreasedBond;\n require(ren.transfer(owner(), previousBond.sub(decreasedBond)), \"bond transfer failed\");\n }\n\n /// @notice Updates the deregistration timestamp of a darknode.\n function updateDarknodeDeregisteredAt(address darknodeID, uint256 deregisteredAt) external onlyOwner {\n darknodeRegistry[darknodeID].deregisteredAt = deregisteredAt;\n }\n\n /// @notice Returns the owner of a given darknode.\n function darknodeOwner(address darknodeID) external view onlyOwner returns (address payable) {\n return darknodeRegistry[darknodeID].owner;\n }\n\n /// @notice Returns the bond of a given darknode.\n function darknodeBond(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].bond;\n }\n\n /// @notice Returns the registration time of a given darknode.\n function darknodeRegisteredAt(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].registeredAt;\n }\n\n /// @notice Returns the deregistration time of a given darknode.\n function darknodeDeregisteredAt(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].deregisteredAt;\n }\n\n /// @notice Returns the encryption public key of a given darknode.\n function darknodePublicKey(address darknodeID) external view onlyOwner returns (bytes memory) {\n return darknodeRegistry[darknodeID].publicKey;\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "exportedSymbols": { - "DarknodeRegistryStore": [ - 2682 - ] - }, - "id": 2683, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2392, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2393, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 7360, - "src": "25:59:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2394, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 4282, - "src": "86:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 2395, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 5059, - "src": "123:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 2808, - "src": "161:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2397, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "402:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2398, - "nodeType": "InheritanceSpecifier", - "src": "402:9:4" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice This contract stores data and funds for the DarknodeRegistry\n contract. The data / fund logic and storage have been separated to improve\n upgradability.", - "fullyImplemented": true, - "id": 2682, - "linearizedBaseContracts": [ - 2682, - 4281 - ], - "name": "DarknodeRegistryStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2401, - "libraryName": { - "contractScope": null, - "id": 2399, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "424:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:4", - "typeName": { - "id": 2400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2403, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "451:21:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistryStore.Darknode", - "id": 2414, - "members": [ - { - "constant": false, - "id": 2405, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1126:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1334:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1433:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1542:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "publicKey", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1835:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1835:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Darknode", - "nodeType": "StructDefinition", - "scope": 2682, - "src": "853:1004:4", - "visibility": "public" - }, - { - "constant": false, - "id": 2418, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1886:53:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "typeName": { - "id": 2417, - "keyType": { - "id": 2415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1894:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1886:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "valueType": { - "contractScope": null, - "id": 2416, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "1905:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2420, - "name": "darknodes", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1945:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 2419, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "1945:15:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2422, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "2002:19:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2421, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2002:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "2280:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2429, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "2290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2430, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2424, - "src": "2300:8:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 2432, - "nodeType": "ExpressionStatement", - "src": "2290:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2433, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "2318:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2434, - "name": "_ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2324:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "2318:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "2318:10:4" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _ren The address of the RenToken contract.", - "id": 2438, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2221:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "name": "_ren", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2253:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2425, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2211:61:4" - }, - "returnParameters": { - "id": 2428, - "nodeType": "ParameterList", - "parameters": [], - "src": "2280:0:4" - }, - "scope": 2682, - "src": "2200:135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2478, - "nodeType": "Block", - "src": "3046:346:4", - "statements": [ - { - "assignments": [ - 2456 - ], - "declarations": [ - { - "constant": false, - "id": 2456, - "name": "darknode", - "nodeType": "VariableDeclaration", - "scope": 2478, - "src": "3056:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - }, - "typeName": { - "contractScope": null, - "id": 2455, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "3056:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2464, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "_darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "3113:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2459, - "name": "_bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2444, - "src": "3147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2460, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2446, - "src": "3177:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 2461, - "name": "_registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "3215:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2462, - "name": "_deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2450, - "src": "3258:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2457, - "name": "Darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "3083:8:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Darknode_$2414_storage_ptr_$", - "typeString": "type(struct DarknodeRegistryStore.Darknode storage pointer)" - } - }, - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "owner", - "bond", - "publicKey", - "registeredAt", - "deregisteredAt" - ], - "nodeType": "FunctionCall", - "src": "3083:201:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:228:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3294:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3311:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3294:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2468, - "name": "darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2456, - "src": "3326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "src": "3294:40:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "3294:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3373:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2471, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3344:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "3344:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3344:41:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2477, - "nodeType": "ExpressionStatement", - "src": "3344:41:4" - } - ] - }, - "documentation": "@notice Instantiates a darknode and appends it to the darknodes\n linked-list.\n\n /// @param _darknodeID The darknode's ID.\n @param _darknodeOwner The darknode's owner's address\n @param _bond The darknode's bond value\n @param _publicKey The darknode's public key\n @param _registeredAt The time stamp when the darknode is registered.\n @param _deregisteredAt The time stamp when the darknode is deregistered.", - "id": 2479, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2453, - "modifierName": { - "argumentTypes": null, - "id": 2452, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3036:9:4" - } - ], - "name": "appendDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2839:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2868:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2868:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2908:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2931:25:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2931:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2448, - "name": "_registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2966:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2966:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2450, - "name": "_deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2997:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2449, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:197:4" - }, - "returnParameters": { - "id": 2454, - "nodeType": "ParameterList", - "parameters": [], - "src": "3046:0:4" - }, - "scope": 2682, - "src": "2806:586:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2491, - "nodeType": "Block", - "src": "3527:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2488, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 2486, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3544:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "3544:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3544:27:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2485, - "id": 2490, - "nodeType": "Return", - "src": "3537:34:4" - } - ] - }, - "documentation": "@notice Returns the address of the first darknode in the store", - "id": 2492, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2482, - "modifierName": { - "argumentTypes": null, - "id": 2481, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3500:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3500:9:4" - } - ], - "name": "begin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2480, - "nodeType": "ParameterList", - "parameters": [], - "src": "3483:2:4" - }, - "returnParameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2492, - "src": "3518:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:9:4" - }, - "scope": 2682, - "src": "3469:109:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2507, - "nodeType": "Block", - "src": "3762:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2503, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3795:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2504, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3806:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3779:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "3779:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3779:38:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2500, - "id": 2506, - "nodeType": "Return", - "src": "3772:45:4" - } - ] - }, - "documentation": "@notice Returns the address of the next darknode in the store after the\n given address.", - "id": 2508, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2497, - "modifierName": { - "argumentTypes": null, - "id": 2496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3735:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3735:9:4" - } - ], - "name": "next", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3701:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3700:20:4" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2499, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3753:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3753:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:9:4" - }, - "scope": 2682, - "src": "3687:137:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2544, - "nodeType": "Block", - "src": "4005:230:4", - "statements": [ - { - "assignments": [ - 2516 - ], - "declarations": [ - { - "constant": false, - "id": 2516, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2544, - "src": "4015:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2521, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2517, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4030:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2519, - "indexExpression": { - "argumentTypes": null, - "id": 2518, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4047:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4030:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4030:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4015:48:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4073:35:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2522, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4080:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2524, - "indexExpression": { - "argumentTypes": null, - "id": 2523, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4097:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4080:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "4073:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2530, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "4136:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2531, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4147:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4118:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4118:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:40:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "4118:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "4189:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2539, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "4198:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4176:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "4176:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4176:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4205:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4168:60:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2543, - "nodeType": "ExpressionStatement", - "src": "4168:60:4" - } - ] - }, - "documentation": "@notice Removes a darknode from the store and transfers its bond to the\n owner of this contract.", - "id": 2545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2513, - "modifierName": { - "argumentTypes": null, - "id": 2512, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3995:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3995:9:4" - } - ], - "name": "removeDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2510, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2545, - "src": "3966:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3965:20:4" - }, - "returnParameters": { - "id": 2514, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:4" - }, - "scope": 2682, - "src": "3942:293:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2588, - "nodeType": "Block", - "src": "4456:298:4", - "statements": [ - { - "assignments": [ - 2555 - ], - "declarations": [ - { - "constant": false, - "id": 2555, - "name": "previousBond", - "nodeType": "VariableDeclaration", - "scope": 2588, - "src": "4466:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4466:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4489:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4506:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4489:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4489:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4466:56:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2562, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4540:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2563, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4556:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4540:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64206e6f7420646563726561736564", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4570:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - }, - "value": "bond not decreased" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - } - ], - "id": 2561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:59:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2567, - "nodeType": "ExpressionStatement", - "src": "4532:59:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4601:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2572, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4637:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4601:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "4601:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2578, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "4681:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4681:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4707:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2580, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4690:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "4690:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4690:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2576, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4668:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "4668:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4668:54:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4724:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4660:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4660:87:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "4660:87:4" - } - ] - }, - "documentation": "@notice Updates the bond of a darknode. The new bond must be smaller\n than the previous bond of the darknode.", - "id": 2589, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2552, - "modifierName": { - "argumentTypes": null, - "id": 2551, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4446:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4446:9:4" - } - ], - "name": "updateDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2547, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4394:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4394:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2549, - "name": "decreasedBond", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4414:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4414:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4393:43:4" - }, - "returnParameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "4456:0:4" - }, - "scope": 2682, - "src": "4366:388:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2605, - "nodeType": "Block", - "src": "4929:77:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2598, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4939:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2600, - "indexExpression": { - "argumentTypes": null, - "id": 2599, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "4956:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "4939:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2602, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "4985:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4939:60:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "4939:60:4" - } - ] - }, - "documentation": "@notice Updates the deregistration timestamp of a darknode.", - "id": 2606, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2596, - "modifierName": { - "argumentTypes": null, - "id": 2595, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4919:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4919:9:4" - } - ], - "name": "updateDarknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2591, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4866:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4886:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4886:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4865:44:4" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [], - "src": "4929:0:4" - }, - "scope": 2682, - "src": "4828:178:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5160:58:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2615, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5177:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2617, - "indexExpression": { - "argumentTypes": null, - "id": 2616, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2608, - "src": "5194:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5177:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2405, - "src": "5177:34:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2614, - "id": 2619, - "nodeType": "Return", - "src": "5170:41:4" - } - ] - }, - "documentation": "@notice Returns the owner of a given darknode.", - "id": 2621, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2611, - "modifierName": { - "argumentTypes": null, - "id": 2610, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5124:9:4" - } - ], - "name": "darknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2608, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5090:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5089:20:4" - }, - "returnParameters": { - "id": 2614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2613, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5143:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5143:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5142:17:4" - }, - "scope": 2682, - "src": "5067:151:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2635, - "nodeType": "Block", - "src": "5362:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2630, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5379:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2632, - "indexExpression": { - "argumentTypes": null, - "id": 2631, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5379:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "5379:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2629, - "id": 2634, - "nodeType": "Return", - "src": "5372:40:4" - } - ] - }, - "documentation": "@notice Returns the bond of a given darknode.", - "id": 2636, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2626, - "modifierName": { - "argumentTypes": null, - "id": 2625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5334:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:9:4" - } - ], - "name": "darknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5300:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5299:20:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5353:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5353:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:9:4" - }, - "scope": 2682, - "src": "5278:141:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "5584:65:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2645, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2647, - "indexExpression": { - "argumentTypes": null, - "id": 2646, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2638, - "src": "5618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2409, - "src": "5601:41:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2644, - "id": 2649, - "nodeType": "Return", - "src": "5594:48:4" - } - ] - }, - "documentation": "@notice Returns the registration time of a given darknode.", - "id": 2651, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2641, - "modifierName": { - "argumentTypes": null, - "id": 2640, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5556:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:9:4" - } - ], - "name": "darknodeRegisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5522:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5521:20:4" - }, - "returnParameters": { - "id": 2644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5575:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5574:9:4" - }, - "scope": 2682, - "src": "5492:157:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "5818:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2660, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5835:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2662, - "indexExpression": { - "argumentTypes": null, - "id": 2661, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "5852:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5835:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "5835:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2659, - "id": 2664, - "nodeType": "Return", - "src": "5828:50:4" - } - ] - }, - "documentation": "@notice Returns the deregistration time of a given darknode.", - "id": 2666, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5790:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5790:9:4" - } - ], - "name": "darknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5756:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5756:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:20:4" - }, - "returnParameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5809:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5808:9:4" - }, - "scope": 2682, - "src": "5724:161:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2680, - "nodeType": "Block", - "src": "6056:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2675, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "6073:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2677, - "indexExpression": { - "argumentTypes": null, - "id": 2676, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6090:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6073:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "publicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2413, - "src": "6073:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 2674, - "id": 2679, - "nodeType": "Return", - "src": "6066:45:4" - } - ] - }, - "documentation": "@notice Returns the encryption public key of a given darknode.", - "id": 2681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2671, - "modifierName": { - "argumentTypes": null, - "id": 2670, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "6023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6023:9:4" - } - ], - "name": "darknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "5989:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5988:20:4" - }, - "returnParameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "6042:12:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2672, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6041:14:4" - }, - "scope": 2682, - "src": "5962:156:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2683, - "src": "368:5752:4" - } - ], - "src": "0:6120:4" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "exportedSymbols": { - "DarknodeRegistryStore": [ - 2682 - ] - }, - "id": 2683, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2392, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2393, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 7360, - "src": "25:59:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2394, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 4282, - "src": "86:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 2395, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 5059, - "src": "123:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 2808, - "src": "161:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2397, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "402:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2398, - "nodeType": "InheritanceSpecifier", - "src": "402:9:4" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice This contract stores data and funds for the DarknodeRegistry\n contract. The data / fund logic and storage have been separated to improve\n upgradability.", - "fullyImplemented": true, - "id": 2682, - "linearizedBaseContracts": [ - 2682, - 4281 - ], - "name": "DarknodeRegistryStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2401, - "libraryName": { - "contractScope": null, - "id": 2399, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "424:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:4", - "typeName": { - "id": 2400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2403, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "451:21:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistryStore.Darknode", - "id": 2414, - "members": [ - { - "constant": false, - "id": 2405, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1126:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1334:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1433:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1542:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "publicKey", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1835:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1835:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Darknode", - "nodeType": "StructDefinition", - "scope": 2682, - "src": "853:1004:4", - "visibility": "public" - }, - { - "constant": false, - "id": 2418, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1886:53:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "typeName": { - "id": 2417, - "keyType": { - "id": 2415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1894:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1886:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "valueType": { - "contractScope": null, - "id": 2416, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "1905:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2420, - "name": "darknodes", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1945:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 2419, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "1945:15:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2422, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "2002:19:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2421, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2002:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "2280:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2429, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "2290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2430, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2424, - "src": "2300:8:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 2432, - "nodeType": "ExpressionStatement", - "src": "2290:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2433, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "2318:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2434, - "name": "_ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2324:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "2318:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "2318:10:4" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _ren The address of the RenToken contract.", - "id": 2438, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2221:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "name": "_ren", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2253:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2425, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2211:61:4" - }, - "returnParameters": { - "id": 2428, - "nodeType": "ParameterList", - "parameters": [], - "src": "2280:0:4" - }, - "scope": 2682, - "src": "2200:135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2478, - "nodeType": "Block", - "src": "3046:346:4", - "statements": [ - { - "assignments": [ - 2456 - ], - "declarations": [ - { - "constant": false, - "id": 2456, - "name": "darknode", - "nodeType": "VariableDeclaration", - "scope": 2478, - "src": "3056:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - }, - "typeName": { - "contractScope": null, - "id": 2455, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "3056:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2464, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "_darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "3113:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2459, - "name": "_bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2444, - "src": "3147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2460, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2446, - "src": "3177:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 2461, - "name": "_registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "3215:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2462, - "name": "_deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2450, - "src": "3258:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2457, - "name": "Darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "3083:8:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Darknode_$2414_storage_ptr_$", - "typeString": "type(struct DarknodeRegistryStore.Darknode storage pointer)" - } - }, - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "owner", - "bond", - "publicKey", - "registeredAt", - "deregisteredAt" - ], - "nodeType": "FunctionCall", - "src": "3083:201:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:228:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3294:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3311:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3294:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2468, - "name": "darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2456, - "src": "3326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "src": "3294:40:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "3294:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3373:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2471, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3344:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "3344:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3344:41:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2477, - "nodeType": "ExpressionStatement", - "src": "3344:41:4" - } - ] - }, - "documentation": "@notice Instantiates a darknode and appends it to the darknodes\n linked-list.\n\n /// @param _darknodeID The darknode's ID.\n @param _darknodeOwner The darknode's owner's address\n @param _bond The darknode's bond value\n @param _publicKey The darknode's public key\n @param _registeredAt The time stamp when the darknode is registered.\n @param _deregisteredAt The time stamp when the darknode is deregistered.", - "id": 2479, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2453, - "modifierName": { - "argumentTypes": null, - "id": 2452, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3036:9:4" - } - ], - "name": "appendDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2839:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2868:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2868:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2908:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2931:25:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2931:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2448, - "name": "_registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2966:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2966:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2450, - "name": "_deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2997:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2449, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:197:4" - }, - "returnParameters": { - "id": 2454, - "nodeType": "ParameterList", - "parameters": [], - "src": "3046:0:4" - }, - "scope": 2682, - "src": "2806:586:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2491, - "nodeType": "Block", - "src": "3527:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2488, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 2486, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3544:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "3544:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3544:27:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2485, - "id": 2490, - "nodeType": "Return", - "src": "3537:34:4" - } - ] - }, - "documentation": "@notice Returns the address of the first darknode in the store", - "id": 2492, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2482, - "modifierName": { - "argumentTypes": null, - "id": 2481, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3500:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3500:9:4" - } - ], - "name": "begin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2480, - "nodeType": "ParameterList", - "parameters": [], - "src": "3483:2:4" - }, - "returnParameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2492, - "src": "3518:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:9:4" - }, - "scope": 2682, - "src": "3469:109:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2507, - "nodeType": "Block", - "src": "3762:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2503, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3795:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2504, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3806:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3779:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "3779:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3779:38:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2500, - "id": 2506, - "nodeType": "Return", - "src": "3772:45:4" - } - ] - }, - "documentation": "@notice Returns the address of the next darknode in the store after the\n given address.", - "id": 2508, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2497, - "modifierName": { - "argumentTypes": null, - "id": 2496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3735:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3735:9:4" - } - ], - "name": "next", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3701:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3700:20:4" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2499, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3753:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3753:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:9:4" - }, - "scope": 2682, - "src": "3687:137:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2544, - "nodeType": "Block", - "src": "4005:230:4", - "statements": [ - { - "assignments": [ - 2516 - ], - "declarations": [ - { - "constant": false, - "id": 2516, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2544, - "src": "4015:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2521, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2517, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4030:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2519, - "indexExpression": { - "argumentTypes": null, - "id": 2518, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4047:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4030:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4030:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4015:48:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4073:35:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2522, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4080:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2524, - "indexExpression": { - "argumentTypes": null, - "id": 2523, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4097:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4080:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "4073:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2530, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "4136:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2531, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4147:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4118:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4118:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:40:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "4118:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "4189:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2539, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "4198:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4176:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "4176:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4176:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4205:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4168:60:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2543, - "nodeType": "ExpressionStatement", - "src": "4168:60:4" - } - ] - }, - "documentation": "@notice Removes a darknode from the store and transfers its bond to the\n owner of this contract.", - "id": 2545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2513, - "modifierName": { - "argumentTypes": null, - "id": 2512, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3995:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3995:9:4" - } - ], - "name": "removeDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2510, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2545, - "src": "3966:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3965:20:4" - }, - "returnParameters": { - "id": 2514, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:4" - }, - "scope": 2682, - "src": "3942:293:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2588, - "nodeType": "Block", - "src": "4456:298:4", - "statements": [ - { - "assignments": [ - 2555 - ], - "declarations": [ - { - "constant": false, - "id": 2555, - "name": "previousBond", - "nodeType": "VariableDeclaration", - "scope": 2588, - "src": "4466:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4466:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4489:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4506:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4489:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4489:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4466:56:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2562, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4540:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2563, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4556:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4540:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64206e6f7420646563726561736564", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4570:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - }, - "value": "bond not decreased" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - } - ], - "id": 2561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:59:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2567, - "nodeType": "ExpressionStatement", - "src": "4532:59:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4601:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2572, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4637:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4601:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "4601:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2578, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4195, - "src": "4681:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4681:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4707:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2580, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4690:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "4690:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4690:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2576, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4668:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7982, - "src": "4668:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4668:54:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4724:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4660:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4660:87:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "4660:87:4" - } - ] - }, - "documentation": "@notice Updates the bond of a darknode. The new bond must be smaller\n than the previous bond of the darknode.", - "id": 2589, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2552, - "modifierName": { - "argumentTypes": null, - "id": 2551, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4446:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4446:9:4" - } - ], - "name": "updateDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2547, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4394:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4394:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2549, - "name": "decreasedBond", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4414:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4414:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4393:43:4" - }, - "returnParameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "4456:0:4" - }, - "scope": 2682, - "src": "4366:388:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2605, - "nodeType": "Block", - "src": "4929:77:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2598, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4939:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2600, - "indexExpression": { - "argumentTypes": null, - "id": 2599, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "4956:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "4939:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2602, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "4985:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4939:60:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "4939:60:4" - } - ] - }, - "documentation": "@notice Updates the deregistration timestamp of a darknode.", - "id": 2606, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2596, - "modifierName": { - "argumentTypes": null, - "id": 2595, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "4919:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4919:9:4" - } - ], - "name": "updateDarknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2591, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4866:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4886:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4886:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4865:44:4" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [], - "src": "4929:0:4" - }, - "scope": 2682, - "src": "4828:178:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5160:58:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2615, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5177:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2617, - "indexExpression": { - "argumentTypes": null, - "id": 2616, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2608, - "src": "5194:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5177:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2405, - "src": "5177:34:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2614, - "id": 2619, - "nodeType": "Return", - "src": "5170:41:4" - } - ] - }, - "documentation": "@notice Returns the owner of a given darknode.", - "id": 2621, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2611, - "modifierName": { - "argumentTypes": null, - "id": 2610, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5124:9:4" - } - ], - "name": "darknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2608, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5090:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5089:20:4" - }, - "returnParameters": { - "id": 2614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2613, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5143:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5143:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5142:17:4" - }, - "scope": 2682, - "src": "5067:151:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2635, - "nodeType": "Block", - "src": "5362:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2630, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5379:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2632, - "indexExpression": { - "argumentTypes": null, - "id": 2631, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5379:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "5379:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2629, - "id": 2634, - "nodeType": "Return", - "src": "5372:40:4" - } - ] - }, - "documentation": "@notice Returns the bond of a given darknode.", - "id": 2636, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2626, - "modifierName": { - "argumentTypes": null, - "id": 2625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5334:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:9:4" - } - ], - "name": "darknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5300:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5299:20:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5353:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5353:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:9:4" - }, - "scope": 2682, - "src": "5278:141:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "5584:65:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2645, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2647, - "indexExpression": { - "argumentTypes": null, - "id": 2646, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2638, - "src": "5618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2409, - "src": "5601:41:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2644, - "id": 2649, - "nodeType": "Return", - "src": "5594:48:4" - } - ] - }, - "documentation": "@notice Returns the registration time of a given darknode.", - "id": 2651, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2641, - "modifierName": { - "argumentTypes": null, - "id": 2640, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5556:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:9:4" - } - ], - "name": "darknodeRegisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5522:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5521:20:4" - }, - "returnParameters": { - "id": 2644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5575:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5574:9:4" - }, - "scope": 2682, - "src": "5492:157:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "5818:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2660, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5835:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2662, - "indexExpression": { - "argumentTypes": null, - "id": 2661, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "5852:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5835:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "5835:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2659, - "id": 2664, - "nodeType": "Return", - "src": "5828:50:4" - } - ] - }, - "documentation": "@notice Returns the deregistration time of a given darknode.", - "id": 2666, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "5790:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5790:9:4" - } - ], - "name": "darknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5756:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5756:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:20:4" - }, - "returnParameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5809:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5808:9:4" - }, - "scope": 2682, - "src": "5724:161:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2680, - "nodeType": "Block", - "src": "6056:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2675, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "6073:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2677, - "indexExpression": { - "argumentTypes": null, - "id": 2676, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6090:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6073:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "publicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2413, - "src": "6073:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 2674, - "id": 2679, - "nodeType": "Return", - "src": "6066:45:4" - } - ] - }, - "documentation": "@notice Returns the encryption public key of a given darknode.", - "id": 2681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2671, - "modifierName": { - "argumentTypes": null, - "id": 2670, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "6023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6023:9:4" - } - ], - "name": "darknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "5989:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5988:20:4" - }, - "returnParameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "6042:12:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2672, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6041:14:4" - }, - "scope": 2682, - "src": "5962:156:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2683, - "src": "368:5752:4" - } - ], - "src": "0:6120:4" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -7605,85 +367,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:46:30.097Z", - "devdoc": { - "methods": { - "appendDarknode(address,address,uint256,bytes,uint256,uint256)": { - "params": { - "_bond": "The darknode's bond value", - "_darknodeID": "The darknode's ID.", - "_darknodeOwner": "The darknode's owner's address", - "_deregisteredAt": "The time stamp when the darknode is deregistered.", - "_publicKey": "The darknode's public key", - "_registeredAt": "The time stamp when the darknode is registered." - } - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_ren": "The address of the RenToken contract." - } - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "appendDarknode(address,address,uint256,bytes,uint256,uint256)": { - "notice": "Instantiates a darknode and appends it to the darknodes linked-list. " - }, - "begin()": { - "notice": "Returns the address of the first darknode in the store" - }, - "constructor": "The contract constructor. ", - "darknodeBond(address)": { - "notice": "Returns the bond of a given darknode." - }, - "darknodeDeregisteredAt(address)": { - "notice": "Returns the deregistration time of a given darknode." - }, - "darknodeOwner(address)": { - "notice": "Returns the owner of a given darknode." - }, - "darknodePublicKey(address)": { - "notice": "Returns the encryption public key of a given darknode." - }, - "darknodeRegisteredAt(address)": { - "notice": "Returns the registration time of a given darknode." - }, - "next(address)": { - "notice": "Returns the address of the next darknode in the store after the given address." - }, - "removeDarknode(address)": { - "notice": "Removes a darknode from the store and transfers its bond to the owner of this contract." - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "updateDarknodeBond(address,uint256)": { - "notice": "Updates the bond of a darknode. The new bond must be smaller than the previous bond of the darknode." - }, - "updateDarknodeDeregisteredAt(address,uint256)": { - "notice": "Updates the deregistration timestamp of a darknode." - } - }, - "notice": "This contract stores data and funds for the DarknodeRegistry contract. The data / fund logic and storage have been separated to improve upgradability." - } + "updatedAt": "2019-07-16T00:46:30.097Z" } \ No newline at end of file diff --git a/build/localnet/DarknodeSlasher.json b/build/localnet/DarknodeSlasher.json index abff8b1f..ab0b7984 100644 --- a/build/localnet/DarknodeSlasher.json +++ b/build/localnet/DarknodeSlasher.json @@ -117,933 +117,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_prover\",\"type\":\"address\"},{\"name\":\"_challenger1\",\"type\":\"address\"},{\"name\":\"_challenger2\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_darknodeRegistry\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{},\"notice\":\"DarknodeSlasher will become a voting system for darknodes to deregister other misbehaving darknodes. Right now, it is a placeholder.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":\"DarknodeSlasher\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506040516020806104cd8339810180604052602081101561003057600080fd5b5051600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055610423806100aa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063563bf26414610067578063715018a6146100a15780638da5cb5b146100a95780638f32d59b146100cd5780639e45e0d0146100e9578063f2fde38b146100f1575b600080fd5b61009f6004803603606081101561007d57600080fd5b506001600160a01b038135811691602081013582169160409091013516610117565b005b61009f6101f1565b6100b1610297565b604080516001600160a01b039092168252519081900360200190f35b6100d56102a6565b604080519115158252519081900360200190f35b6100b16102b7565b61009f6004803603602081101561010757600080fd5b50356001600160a01b03166102c6565b61011f6102a6565b6101735760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60015460408051600160e21b63158efc990281526001600160a01b038681166004830152858116602483015284811660448301529151919092169163563bf26491606480830192600092919082900301818387803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b50505050505050565b6101f96102a6565b61024d5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001546001600160a01b031681565b6102ce6102a6565b6103225760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61032b8161032e565b50565b6001600160a01b03811661037657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103d26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a7230582066c840b24a8492e829fec80aa06fcf6fddceb3c18d9407e4e5604f9b773ac7e30029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063563bf26414610067578063715018a6146100a15780638da5cb5b146100a95780638f32d59b146100cd5780639e45e0d0146100e9578063f2fde38b146100f1575b600080fd5b61009f6004803603606081101561007d57600080fd5b506001600160a01b038135811691602081013582169160409091013516610117565b005b61009f6101f1565b6100b1610297565b604080516001600160a01b039092168252519081900360200190f35b6100d56102a6565b604080519115158252519081900360200190f35b6100b16102b7565b61009f6004803603602081101561010757600080fd5b50356001600160a01b03166102c6565b61011f6102a6565b6101735760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60015460408051600160e21b63158efc990281526001600160a01b038681166004830152858116602483015284811660448301529151919092169163563bf26491606480830192600092919082900301818387803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b50505050505050565b6101f96102a6565b61024d5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001546001600160a01b031681565b6102ce6102a6565b6103225760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61032b8161032e565b50565b6001600160a01b03811661037657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103d26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a7230582066c840b24a8492e829fec80aa06fcf6fddceb3c18d9407e4e5604f9b773ac7e30029", - "sourceMap": "295:397:5:-;;;385:108;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:108:5;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;385:108:5;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;-1:-1:-1;;;;;724:6:36;;;;;657;691:40;;657:6;;691:40;450:16:5;:36;;-1:-1:-1;;;;;;450:36:5;-1:-1:-1;;;;;450:36:5;;;;;;;;;;295:397;;;-1:-1:-1;295:397:5;;", - "deployedSourceMap": "295:397:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;295:397:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:191;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;499:191:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;1599:137:36;;;:::i;814:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:36;;;;;;;;;;;;;;1165:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;338:40:5;;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;499:191:5:-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:16:5;;:59;;;-1:-1:-1;;;;;624:59:5;;-1:-1:-1;;;;;624:59:5;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;:22;;:59;;;;;:16;;:59;;;;;;;:16;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;624:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;624:59:5;;;;499:191;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;814:77::-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;338:40:5:-;;;-1:-1:-1;;;;;338:40:5;;:::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;2093:225::-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\n\n/// @notice DarknodeSlasher will become a voting system for darknodes to\n/// deregister other misbehaving darknodes.\n/// Right now, it is a placeholder.\ncontract DarknodeSlasher is Ownable {\n\n DarknodeRegistry public darknodeRegistry;\n\n constructor(DarknodeRegistry _darknodeRegistry) public {\n darknodeRegistry = _darknodeRegistry;\n }\n\n function slash(address _prover, address _challenger1, address _challenger2)\n external\n onlyOwner\n {\n darknodeRegistry.slash(_prover, _challenger1, _challenger2);\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "exportedSymbols": { - "DarknodeSlasher": [ - 2721 - ] - }, - "id": 2722, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2684, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2685, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 7471, - "src": "25:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 2686, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 2391, - "src": "90:50:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2687, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2688, - "nodeType": "InheritanceSpecifier", - "src": "323:7:5" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeSlasher will become a voting system for darknodes to\n deregister other misbehaving darknodes.\n Right now, it is a placeholder.", - "fullyImplemented": true, - "id": 2721, - "linearizedBaseContracts": [ - 2721, - 7470 - ], - "name": "DarknodeSlasher", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2690, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "338:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2689, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "338:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2699, - "nodeType": "Block", - "src": "440:53:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2695, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2696, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "469:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "450:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "450:36:5" - } - ] - }, - "documentation": null, - "id": 2700, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2700, - "src": "397:34:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2691, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "397:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "396:36:5" - }, - "returnParameters": { - "id": 2694, - "nodeType": "ParameterList", - "parameters": [], - "src": "440:0:5" - }, - "scope": 2721, - "src": "385:108:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "614:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2714, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2715, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2704, - "src": "656:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2716, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "670:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2711, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "624:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1878, - "src": "624:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address) external" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "624:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "624:59:5" - } - ] - }, - "documentation": null, - "id": 2720, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2709, - "modifierName": { - "argumentTypes": null, - "id": 2708, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "600:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "600:9:5" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2702, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "514:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2704, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "531:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2706, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "553:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:61:5" - }, - "returnParameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [], - "src": "614:0:5" - }, - "scope": 2721, - "src": "499:191:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2722, - "src": "295:397:5" - } - ], - "src": "0:693:5" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "exportedSymbols": { - "DarknodeSlasher": [ - 2721 - ] - }, - "id": 2722, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2684, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2685, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 7471, - "src": "25:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 2686, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 2391, - "src": "90:50:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2687, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2688, - "nodeType": "InheritanceSpecifier", - "src": "323:7:5" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeSlasher will become a voting system for darknodes to\n deregister other misbehaving darknodes.\n Right now, it is a placeholder.", - "fullyImplemented": true, - "id": 2721, - "linearizedBaseContracts": [ - 2721, - 7470 - ], - "name": "DarknodeSlasher", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2690, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "338:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2689, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "338:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2699, - "nodeType": "Block", - "src": "440:53:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2695, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2696, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "469:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "450:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "450:36:5" - } - ] - }, - "documentation": null, - "id": 2700, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2700, - "src": "397:34:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2691, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "397:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "396:36:5" - }, - "returnParameters": { - "id": 2694, - "nodeType": "ParameterList", - "parameters": [], - "src": "440:0:5" - }, - "scope": 2721, - "src": "385:108:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "614:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2714, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2715, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2704, - "src": "656:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2716, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "670:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2711, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "624:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1878, - "src": "624:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address) external" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "624:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "624:59:5" - } - ] - }, - "documentation": null, - "id": 2720, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2709, - "modifierName": { - "argumentTypes": null, - "id": 2708, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "600:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "600:9:5" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2702, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "514:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2704, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "531:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2706, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "553:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:61:5" - }, - "returnParameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [], - "src": "614:0:5" - }, - "scope": 2721, - "src": "499:191:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2722, - "src": "295:397:5" - } - ], - "src": "0:693:5" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -1076,25 +150,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:46:30.131Z", - "devdoc": { - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - } - }, - "userdoc": { - "methods": {}, - "notice": "DarknodeSlasher will become a voting system for darknodes to deregister other misbehaving darknodes. Right now, it is a placeholder." - } + "updatedAt": "2019-07-16T00:46:30.131Z" } \ No newline at end of file diff --git a/build/localnet/RenToken.json b/build/localnet/RenToken.json index 3de44781..c6f4dcb5 100644 --- a/build/localnet/RenToken.json +++ b/build/localnet/RenToken.json @@ -528,2277 +528,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"INITIAL_SUPPLY\",\"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\":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\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":false,\"inputs\":[{\"name\":\"beneficiary\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferTokens\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"burn(uint256)\":{\"details\":\"Destoys `amount` tokens from the caller. * See `ERC20._burn`.\"},\"burnFrom(address,uint256)\":{\"details\":\"See `ERC20._burnFrom`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Called by a pauser to pause, triggers stopped state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Called by a pauser to unpause, returns to normal state.\"}}},\"userdoc\":{\"methods\":{\"constructor\":\"The RenToken Constructor.\"}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":\"RenToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600e81527f52657075626c696320546f6b656e00000000000000000000000000000000000060208083019190915282518084018452600381527f52454e000000000000000000000000000000000000000000000000000000000091810191909152600080546001600160a01b03191633178082559351929391926012926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620000dd90600190602086019062000460565b508151620000f390600290602085019062000460565b506003805460ff191660ff92909216919091179055506200011d9050336200014c602090811b901c565b6008805460ff1916905562000146336b033b2e3c9fd0803ce80000006200019e602090811b901c565b62000505565b62000167816007620002bd60201b620013531790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6001600160a01b0382166200021457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000230816006546200036160201b6200128c1790919060201c565b6006556001600160a01b038216600090815260046020908152604090912054620002659183906200128c62000361821b17901c565b6001600160a01b03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b620002cf8282620003dd60201b60201c565b156200033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600082820183811015620003d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b03821662000440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001a606022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a357805160ff1916838001178555620004d3565b82800160010185558215620004d3579182015b82811115620004d3578251825591602001919060010190620004b6565b50620004e1929150620004e5565b5090565b6200050291905b80821115620004e15760008155600101620004ec565b90565b61154b80620005156000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780638f32d59b11610097578063a9059cbb11610071578063a9059cbb1461041c578063bec3fa1714610448578063dd62ed3e14610474578063f2fde38b146104a257610173565b80638f32d59b146103e057806395d89b41146103e8578063a457c2d7146103f057610173565b806370a0823114610334578063715018a61461035a57806379cc67901461036257806382dc1ec41461038e5780638456cb59146103b45780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102ab5780633f4ba83a146102d757806342966c68146102e157806346fbf68e146102fe5780635c975abb146103245780636ef8d66d1461032c57610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd1461023557806323b872dd1461024f5780632ff2e9dc14610285578063313ce5671461028d575b600080fd5b6101806104c8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b03813516906020013561055d565b604080519115158252519081900360200190f35b61023d6105c2565b60408051918252519081900360200190f35b6102216004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b61023d61062f565b61029561063f565b6040805160ff9092168252519081900360200190f35b610221600480360360408110156102c157600080fd5b506001600160a01b038135169060200135610648565b6102df6106a6565b005b6102df600480360360208110156102f757600080fd5b5035610786565b6102216004803603602081101561031457600080fd5b50356001600160a01b0316610793565b6102216107ac565b6102df6107b5565b61023d6004803603602081101561034a57600080fd5b50356001600160a01b03166107c0565b6102df6107db565b6102df6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610881565b6102df600480360360208110156103a457600080fd5b50356001600160a01b031661088f565b6102df6108df565b6103c46109b9565b604080516001600160a01b039092168252519081900360200190f35b6102216109c8565b6101806109d9565b6102216004803603604081101561040657600080fd5b506001600160a01b038135169060200135610a37565b6102216004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a95565b6102216004803603604081101561045e57600080fd5b506001600160a01b038135169060200135610af3565b61023d6004803603604081101561048a57600080fd5b506001600160a01b0381358116916020013516610bb2565b6102df600480360360208110156104b857600080fd5b50356001600160a01b0316610bdd565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b60085460009060ff16156105b15760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610c42565b9392505050565b60065490565b60085460009060ff161561061c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610627848484610c58565b949350505050565b6b033b2e3c9fd0803ce800000081565b60035460ff1690565b60085460009060ff161561069c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610caf565b6106af33610793565b6106ed57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff166107475760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6008805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6107903382610ceb565b50565b60006107a660078363ffffffff610dc916565b92915050565b60085460ff1690565b6107be33610e33565b565b6001600160a01b031660009081526004602052604090205490565b6107e36109c8565b6108375760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61088b8282610e7b565b5050565b61089833610793565b6108d657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b61079081610ec0565b6108e833610793565b61092657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff16156109775760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6008805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b60085460009060ff1615610a8b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f08565b60085460009060ff1615610ae95760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f44565b6000610afd6109c8565b610b515760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008211610b5e57600080fd5b610b69338484610f4d565b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610be56109c8565b610c395760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61079081611097565b6000610c4f33848461113a565b50600192915050565b6000610c65848484610f4d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610ca5918691610ca0908663ffffffff61122c16565b61113a565b5060019392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61128c16565b6001600160a01b038216610d3357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114b66021913960400191505060405180910390fd5b600654610d46908263ffffffff61122c16565b6006556001600160a01b038216600090815260046020526040902054610d72908263ffffffff61122c16565b6001600160a01b0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610e1357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114946022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610e4460078263ffffffff6112e916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e858282610ceb565b6001600160a01b03821660009081526005602090815260408083203380855292529091205461088b918491610ca0908563ffffffff61122c16565b610ed160078263ffffffff61135316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61122c16565b6000610c4f3384845b6001600160a01b038316610f9557604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114d76025913960400191505060405180910390fd5b6001600160a01b038216610fdd57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806113d86023913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054611006908263ffffffff61122c16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461103b908263ffffffff61128c16565b6001600160a01b0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166110df57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061142b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661118257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114fc6024913960400191505060405180910390fd5b6001600160a01b0382166111ca57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156112865760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156105bb5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6112f38282610dc9565b61133157604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114736021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61135d8282610dc9565b156113b25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820715382a57d16cd2d1255e6b4305cc3f37811602a240b798963b059cd77f3899b0029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780638f32d59b11610097578063a9059cbb11610071578063a9059cbb1461041c578063bec3fa1714610448578063dd62ed3e14610474578063f2fde38b146104a257610173565b80638f32d59b146103e057806395d89b41146103e8578063a457c2d7146103f057610173565b806370a0823114610334578063715018a61461035a57806379cc67901461036257806382dc1ec41461038e5780638456cb59146103b45780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102ab5780633f4ba83a146102d757806342966c68146102e157806346fbf68e146102fe5780635c975abb146103245780636ef8d66d1461032c57610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd1461023557806323b872dd1461024f5780632ff2e9dc14610285578063313ce5671461028d575b600080fd5b6101806104c8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b03813516906020013561055d565b604080519115158252519081900360200190f35b61023d6105c2565b60408051918252519081900360200190f35b6102216004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b61023d61062f565b61029561063f565b6040805160ff9092168252519081900360200190f35b610221600480360360408110156102c157600080fd5b506001600160a01b038135169060200135610648565b6102df6106a6565b005b6102df600480360360208110156102f757600080fd5b5035610786565b6102216004803603602081101561031457600080fd5b50356001600160a01b0316610793565b6102216107ac565b6102df6107b5565b61023d6004803603602081101561034a57600080fd5b50356001600160a01b03166107c0565b6102df6107db565b6102df6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610881565b6102df600480360360208110156103a457600080fd5b50356001600160a01b031661088f565b6102df6108df565b6103c46109b9565b604080516001600160a01b039092168252519081900360200190f35b6102216109c8565b6101806109d9565b6102216004803603604081101561040657600080fd5b506001600160a01b038135169060200135610a37565b6102216004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a95565b6102216004803603604081101561045e57600080fd5b506001600160a01b038135169060200135610af3565b61023d6004803603604081101561048a57600080fd5b506001600160a01b0381358116916020013516610bb2565b6102df600480360360208110156104b857600080fd5b50356001600160a01b0316610bdd565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b60085460009060ff16156105b15760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610c42565b9392505050565b60065490565b60085460009060ff161561061c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610627848484610c58565b949350505050565b6b033b2e3c9fd0803ce800000081565b60035460ff1690565b60085460009060ff161561069c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610caf565b6106af33610793565b6106ed57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff166107475760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6008805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6107903382610ceb565b50565b60006107a660078363ffffffff610dc916565b92915050565b60085460ff1690565b6107be33610e33565b565b6001600160a01b031660009081526004602052604090205490565b6107e36109c8565b6108375760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61088b8282610e7b565b5050565b61089833610793565b6108d657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b61079081610ec0565b6108e833610793565b61092657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff16156109775760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6008805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b60085460009060ff1615610a8b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f08565b60085460009060ff1615610ae95760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f44565b6000610afd6109c8565b610b515760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008211610b5e57600080fd5b610b69338484610f4d565b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610be56109c8565b610c395760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61079081611097565b6000610c4f33848461113a565b50600192915050565b6000610c65848484610f4d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610ca5918691610ca0908663ffffffff61122c16565b61113a565b5060019392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61128c16565b6001600160a01b038216610d3357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114b66021913960400191505060405180910390fd5b600654610d46908263ffffffff61122c16565b6006556001600160a01b038216600090815260046020526040902054610d72908263ffffffff61122c16565b6001600160a01b0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610e1357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114946022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610e4460078263ffffffff6112e916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e858282610ceb565b6001600160a01b03821660009081526005602090815260408083203380855292529091205461088b918491610ca0908563ffffffff61122c16565b610ed160078263ffffffff61135316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61122c16565b6000610c4f3384845b6001600160a01b038316610f9557604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114d76025913960400191505060405180910390fd5b6001600160a01b038216610fdd57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806113d86023913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054611006908263ffffffff61122c16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461103b908263ffffffff61128c16565b6001600160a01b0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166110df57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061142b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661118257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114fc6024913960400191505060405180910390fd5b6001600160a01b0382166111ca57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156112865760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156105bb5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6112f38282610dc9565b61133157604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114736021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61135d8282610dc9565b156113b25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820715382a57d16cd2d1255e6b4305cc3f37811602a240b798963b059cd77f3899b0029", - "sourceMap": "306:872:6:-;;;655:144;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;715:5:6;;;;;;;;;;;;;;;;;;;;722:7;;;;;;;;;;;;;;;;;;-1:-1:-1;657:19:36;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;715:5:6;;722:7;;521:2;;-1:-1:-1;;;;;724:6:36;;-1:-1:-1;691:40:36;;-1:-1:-1;;691:40:36;504:12:39;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;-1:-1:-1;;552:20:39;;;;;;;;;;;;-1:-1:-1;275:22:31;;-1:-1:-1;286:10:31;275;;;;;:22;;:::i;:::-;975:7:33;:15;;-1:-1:-1;;975:15:33;;;759:33:6;765:10;571:35;759:5;;;;;:33;;:::i;:::-;306:872;;737:119:31;793:21;806:7;793:8;:12;;;;;;:21;;;;:::i;:::-;829:20;;-1:-1:-1;;;;;829:20:31;;;;;;;;737:119;:::o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:24;5946:6;5929:12;;:16;;;;;;:24;;;;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;;;;;:9;:18;;;;;;;;;:30;;6007:6;;5984:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;;;;;:9;:18;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;;;6029:37;;;;;;;;;;5771:302;;:::o;260:175:30:-;337:18;341:4;347:7;337:3;;;:18;;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:30;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:30;424:4;401:27;;;260:175::o;834:176:35:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;779:200:30:-;851:4;-1:-1:-1;;;;;875:21:30;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:30;:11;:20;;;;;;;;;;;;;;;779:200::o;306:872:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;306:872:6;;;-1:-1:-1;306:872:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "306:872:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:872:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;516:138:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;516:138:40;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89:37;;;:::i;:::-;;;;;;;;;;;;;;;;352:158:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;352:158:40;;;;;;;;;;;;;;;;;:::i;530:76:6:-;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;660:165:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;660:165:40;;;;;;;;:::i;1852:115:33:-;;;:::i;:::-;;397:79:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;397:79:38;;:::i;447:107:31:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;447:107:31;-1:-1:-1;;;;;447:107:31;;:::i;1092:76:33:-;;;:::i;656:75:31:-;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1599:137:36:-;;;:::i;533:101:38:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;533:101:38;;;;;;;;:::i;560:90:31:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;560:90:31;-1:-1:-1;;;;;560:90:31;;:::i;1649:113:33:-;;;:::i;814:77:36:-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:36;;;;;;;;;;;;;;1165:90;;;:::i;838:85:39:-;;;:::i;831:175:40:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;831:175:40;;;;;;;;:::i;216:130::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;216:130:40;;;;;;;;:::i;805:371:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;805:371:6;;;;;;;;:::i;2183:132:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;516:138:40:-;1321:7:33;;595:4:40;;1321:7:33;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;;;;618:29:40;632:7;641:5;618:13;:29::i;:::-;611:36;516:138;-1:-1:-1;;;516:138:40:o;1514:89:37:-;1584:12;;1514:89;:::o;352:158:40:-;1321:7:33;;445:4:40;;1321:7:33;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;;;;468:35:40;487:4;493:2;497:5;468:18;:35::i;:::-;461:42;352:158;-1:-1:-1;;;;352:158:40:o;530:76:6:-;571:35;530:76;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;660:165:40:-;1321:7:33;;751:4:40;;1321:7:33;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;;;;774:44:40;798:7;807:10;774:23;:44::i;1852:115:33:-;350:20:31;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:7:33;;;;1504:40;;;;;-1:-1:-1;;;;;1504:40:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:7;:15;;-1:-1:-1;;1910:15:33;;;1940:20;;;1949:10;1940:20;;;;;;;;;;;;;1852:115::o;397:79:38:-;444:25;450:10;462:6;444:5;:25::i;:::-;397:79;:::o;447:107:31:-;503:4;526:21;:8;539:7;526:21;:12;:21;:::i;:::-;519:28;447:107;-1:-1:-1;;447:107:31:o;1092:76:33:-;1154:7;;;;1092:76;:::o;656:75:31:-;699:25;713:10;699:13;:25::i;:::-;656:75::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;:9;:18;;;;;;;1661:108::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;533:101:38:-;601:26;611:7;620:6;601:9;:26::i;:::-;533:101;;:::o;560:90:31:-;350:20;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:19;635:7;624:10;:19::i;1649:113:33:-;350:20:31;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:7:33;;;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;;;;1708:7;:14;;-1:-1:-1;;1708:14:33;1718:4;1708:14;;;1737:18;;;1744:10;1737:18;;;;;;;;;;;;;1649:113::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;838:85:39:-;909:7;902:14;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;831:175:40;1321:7:33;;927:4:40;;1321:7:33;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;;;;950:49:40;974:7;983:15;950:23;:49::i;216:130::-;1321:7:33;;291:4:40;;1321:7:33;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:33;;;;;;;;;;;;;;;314:25:40;329:2;333:5;314:14;:25::i;805:371:6:-;892:4;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:1:6;1027:6;:10;1019:19;;;;;;1049:42;1059:10;1071:11;1084:6;1049:9;:42::i;:::-;1106:41;;;;;;;;-1:-1:-1;;;;;1106:41:6;;;1115:10;;1106:41;;;;;;;;;-1:-1:-1;1165:4:6;805:371;;;;:::o;2183:132:37:-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;;;;;:9;:18;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;;;;;:9;:18;;;;;;;;:50;;;;6649:36;;;;;;;6584:18;;6649:36;;;;;;;;;;;6392:300;;:::o;779:200:30:-;851:4;-1:-1:-1;;;;;875:21:30;;867:68;;;;-1:-1:-1;;;;;867:68:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:30;:11;:20;;;;;;;;;;;;;;;779:200::o;862:127:31:-;921:24;:8;937:7;921:24;:15;:24;:::i;:::-;960:22;;-1:-1:-1;;;;;960:22:31;;;;;;;;862:127;:::o;7623:185:37:-;7694:22;7700:7;7709:6;7694:5;:22::i;:::-;-1:-1:-1;;;;;7756:20:37;;;;;;:11;:20;;;;;;;;7744:10;7756:32;;;;;;;;;7726:75;;7735:7;;7756:44;;7793:6;7756:44;:36;:44;:::i;737:119:31:-;793:21;:8;806:7;793:21;:12;:21;:::i;:::-;829:20;;-1:-1:-1;;;;;829:20:31;;;;;;;;737:119;:::o;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;5079:422;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;;;;;:9;:17;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;;;;;:9;:17;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;;;;;:9;:20;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;510:180:30;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;;;581:64:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:30;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:30;;;510:180::o;260:175::-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;;;328:63:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:30;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:30;424:4;401:27;;;260:175::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\";\n\ncontract RenToken is Ownable, ERC20Detailed, ERC20Pausable, ERC20Burnable {\n\n string private constant _name = \"Republic Token\";\n string private constant _symbol = \"REN\";\n uint8 private constant _decimals = 18;\n\n uint256 public constant INITIAL_SUPPLY = 1000000000 * 10**uint256(_decimals);\n\n /// @notice The RenToken Constructor.\n constructor() ERC20Burnable() ERC20Pausable() ERC20Detailed(_name, _symbol, _decimals) public {\n _mint(msg.sender, INITIAL_SUPPLY);\n }\n\n function transferTokens(address beneficiary, uint256 amount) public onlyOwner returns (bool) {\n // Note: The deployed version has no revert reason\n /* solium-disable-next-line error-reason */\n require(amount > 0);\n\n _transfer(msg.sender, beneficiary, amount);\n emit Transfer(msg.sender, beneficiary, amount);\n\n return true;\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "exportedSymbols": { - "RenToken": [ - 2807 - ] - }, - "id": 2808, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2723, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2724, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7471, - "src": "25:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2725, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7957, - "src": "89:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "id": 2726, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8059, - "src": "161:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "id": 2727, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7899, - "src": "233:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2728, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "327:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2729, - "nodeType": "InheritanceSpecifier", - "src": "327:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2730, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "336:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2731, - "nodeType": "InheritanceSpecifier", - "src": "336:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2732, - "name": "ERC20Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8058, - "src": "351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Pausable_$8058", - "typeString": "contract ERC20Pausable" - } - }, - "id": 2733, - "nodeType": "InheritanceSpecifier", - "src": "351:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2734, - "name": "ERC20Burnable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7898, - "src": "366:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Burnable_$7898", - "typeString": "contract ERC20Burnable" - } - }, - "id": 2735, - "nodeType": "InheritanceSpecifier", - "src": "366:13:6" - } - ], - "contractDependencies": [ - 6992, - 7157, - 7470, - 7867, - 7898, - 7956, - 8058, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2807, - "linearizedBaseContracts": [ - 2807, - 7898, - 8058, - 7157, - 6992, - 7867, - 7956, - 8127, - 7470 - ], - "name": "RenToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2738, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "387:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "387:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52657075626c696320546f6b656e", - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "419:16:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c6ec46181aa7e50449c1e0380e9046c227fda9fd0b9c20a72f5ec058938b03", - "typeString": "literal_string \"Republic Token\"" - }, - "value": "Republic Token" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2741, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "441:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2739, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52454e", - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f3045e2a4127a16411506ed3ee0d680edc88abec4ec54f5803cb81605dbdf79", - "typeString": "literal_string \"REN\"" - }, - "value": "REN" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2744, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "486:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2742, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "521:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2753, - "name": "INITIAL_SUPPLY", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "530:76:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "530:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030303030", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:10:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1000000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "596:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "584:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "571:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 2771, - "nodeType": "Block", - "src": "749:50:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "765:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2768, - "name": "INITIAL_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2753, - "src": "777:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2765, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "759:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "759:33:6" - } - ] - }, - "documentation": "@notice The RenToken Constructor.", - "id": 2772, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [], - "id": 2756, - "modifierName": { - "argumentTypes": null, - "id": 2755, - "name": "ERC20Burnable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7898, - "src": "669:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Burnable_$7898_$", - "typeString": "type(contract ERC20Burnable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:15:6" - }, - { - "arguments": [], - "id": 2758, - "modifierName": { - "argumentTypes": null, - "id": 2757, - "name": "ERC20Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8058, - "src": "685:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Pausable_$8058_$", - "typeString": "type(contract ERC20Pausable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "685:15:6" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2738, - "src": "715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2761, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "722:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "731:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2759, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "701:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "701:40:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2754, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:2:6" - }, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:6" - }, - "scope": 2807, - "src": "655:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2805, - "nodeType": "Block", - "src": "898:278:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2784, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1027:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1036:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1027:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8164, - "src": "1019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1019:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2788, - "nodeType": "ExpressionStatement", - "src": "1019:19:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "1059:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1071:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1084:6:6", - "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": 2789, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7710, - "src": "1049:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1049:42:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2795, - "nodeType": "ExpressionStatement", - "src": "1049:42:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "1115:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1115:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2799, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1127:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2800, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1140:6:6", - "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": 2796, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8118, - "src": "1106:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1106:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "EmitStatement", - "src": "1101:46:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1165:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2782, - "id": 2804, - "nodeType": "Return", - "src": "1158:11:6" - } - ] - }, - "documentation": null, - "id": 2806, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2779, - "modifierName": { - "argumentTypes": null, - "id": 2778, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "873:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "873:9:6" - } - ], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2774, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "829:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2776, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "850:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "828:37:6" - }, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "892:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2780, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "892:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:6:6" - }, - "scope": 2807, - "src": "805:371:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2808, - "src": "306:872:6" - } - ], - "src": "0:1179:6" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "exportedSymbols": { - "RenToken": [ - 2807 - ] - }, - "id": 2808, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2723, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2724, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7471, - "src": "25:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2725, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7957, - "src": "89:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "id": 2726, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8059, - "src": "161:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "id": 2727, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7899, - "src": "233:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2728, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "327:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2729, - "nodeType": "InheritanceSpecifier", - "src": "327:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2730, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "336:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2731, - "nodeType": "InheritanceSpecifier", - "src": "336:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2732, - "name": "ERC20Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8058, - "src": "351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Pausable_$8058", - "typeString": "contract ERC20Pausable" - } - }, - "id": 2733, - "nodeType": "InheritanceSpecifier", - "src": "351:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2734, - "name": "ERC20Burnable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7898, - "src": "366:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Burnable_$7898", - "typeString": "contract ERC20Burnable" - } - }, - "id": 2735, - "nodeType": "InheritanceSpecifier", - "src": "366:13:6" - } - ], - "contractDependencies": [ - 6992, - 7157, - 7470, - 7867, - 7898, - 7956, - 8058, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2807, - "linearizedBaseContracts": [ - 2807, - 7898, - 8058, - 7157, - 6992, - 7867, - 7956, - 8127, - 7470 - ], - "name": "RenToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2738, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "387:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "387:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52657075626c696320546f6b656e", - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "419:16:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c6ec46181aa7e50449c1e0380e9046c227fda9fd0b9c20a72f5ec058938b03", - "typeString": "literal_string \"Republic Token\"" - }, - "value": "Republic Token" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2741, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "441:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2739, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52454e", - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f3045e2a4127a16411506ed3ee0d680edc88abec4ec54f5803cb81605dbdf79", - "typeString": "literal_string \"REN\"" - }, - "value": "REN" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2744, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "486:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2742, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "521:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2753, - "name": "INITIAL_SUPPLY", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "530:76:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "530:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030303030", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:10:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1000000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "596:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "584:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "571:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 2771, - "nodeType": "Block", - "src": "749:50:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "765:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2768, - "name": "INITIAL_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2753, - "src": "777:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2765, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "759:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "759:33:6" - } - ] - }, - "documentation": "@notice The RenToken Constructor.", - "id": 2772, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [], - "id": 2756, - "modifierName": { - "argumentTypes": null, - "id": 2755, - "name": "ERC20Burnable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7898, - "src": "669:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Burnable_$7898_$", - "typeString": "type(contract ERC20Burnable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:15:6" - }, - { - "arguments": [], - "id": 2758, - "modifierName": { - "argumentTypes": null, - "id": 2757, - "name": "ERC20Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8058, - "src": "685:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Pausable_$8058_$", - "typeString": "type(contract ERC20Pausable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "685:15:6" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2738, - "src": "715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2761, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "722:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "731:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2759, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "701:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "701:40:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2754, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:2:6" - }, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:6" - }, - "scope": 2807, - "src": "655:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2805, - "nodeType": "Block", - "src": "898:278:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2784, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1027:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1036:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1027:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8164, - "src": "1019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1019:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2788, - "nodeType": "ExpressionStatement", - "src": "1019:19:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "1059:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1071:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1084:6:6", - "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": 2789, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7710, - "src": "1049:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1049:42:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2795, - "nodeType": "ExpressionStatement", - "src": "1049:42:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "1115:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1115:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2799, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1127:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2800, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1140:6:6", - "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": 2796, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8118, - "src": "1106:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1106:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "EmitStatement", - "src": "1101:46:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1165:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2782, - "id": 2804, - "nodeType": "Return", - "src": "1158:11:6" - } - ] - }, - "documentation": null, - "id": 2806, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2779, - "modifierName": { - "argumentTypes": null, - "id": 2778, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "873:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "873:9:6" - } - ], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2774, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "829:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2776, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "850:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "828:37:6" - }, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "892:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2780, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "892:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:6:6" - }, - "scope": 2807, - "src": "805:371:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2808, - "src": "306:872:6" - } - ], - "src": "0:1179:6" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2811,59 +541,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:46:30.071Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "burn(uint256)": { - "details": "Destoys `amount` tokens from the caller. * See `ERC20._burn`." - }, - "burnFrom(address,uint256)": { - "details": "See `ERC20._burnFrom`." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "pause()": { - "details": "Called by a pauser to pause, triggers stopped state." - }, - "paused()": { - "details": "Returns true if the contract is paused, and false otherwise." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "unpause()": { - "details": "Called by a pauser to unpause, returns to normal state." - } - } - }, - "userdoc": { - "methods": { - "constructor": "The RenToken Constructor." - } - } + "updatedAt": "2019-07-16T00:46:30.071Z" } \ No newline at end of file diff --git a/build/localnet/ShifterRegistry.json b/build/localnet/ShifterRegistry.json index 1ddb7dea..fcfa93f7 100644 --- a/build/localnet/ShifterRegistry.json +++ b/build/localnet/ShifterRegistry.json @@ -308,12729 +308,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"getShifterByToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"name\":\"getShifterBySymbol\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getShiftedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"setShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"removeShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_newShifterAddress\",\"type\":\"address\"}],\"name\":\"updateShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getShifters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"name\":\"getTokenBySymbol\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_indexedSymbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_indexedSymbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_currentShifterAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_newShifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"getShiftedTokens(address,uint256)\":{\"details\":\"To get all the registered shifted tokens use count = 0.\"},\"getShifterBySymbol(string)\":{\"params\":{\"_tokenSymbol\":\"The symbol of the ERC20Shifted token contract.\"}},\"getShifterByToken(address)\":{\"params\":{\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}},\"getShifters(address,uint256)\":{\"details\":\"To get all the registered shifters use count = 0.\"},\"getTokenBySymbol(string)\":{\"params\":{\"_tokenSymbol\":\"The symbol of the ERC20Shifted token contract to lookup.\"}},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"removeShifter(string)\":{\"params\":{\"_symbol\":\"The symbol of the token to deregister.\"}},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"setShifter(address,address)\":{\"params\":{\"_shifterAddress\":\"The address of the Shifter contract.\",\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"updateShifter(address,address)\":{\"params\":{\"_newShifterAddress\":\"The updated address of the Shifter contract.\",\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}}}},\"userdoc\":{\"methods\":{\"getShifterBySymbol(string)\":{\"notice\":\"Returns the Shifter address for the given ERC20Shifted token symbol. \"},\"getShifterByToken(address)\":{\"notice\":\"Returns the Shifter address for the given ERC20Shifted token contract address. \"},\"getTokenBySymbol(string)\":{\"notice\":\"Returns the ERC20Shifted address for the given token symbol. \"},\"removeShifter(string)\":{\"notice\":\"Allows the owner to remove the shifter address for a given ERC20shifter token contract. \"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setShifter(address,address)\":{\"notice\":\"Allow the owner to set the shifter address for a given ERC20Shifted token contract. \"},\"updateShifter(address,address)\":{\"notice\":\"Allow the owner to update the shifter address for a given ERC20Shifted token contract. \"}},\"notice\":\"ShifterRegistry is a mapping from assets to their associated ERC20Shifted and Shifter contracts.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol\":\"ShifterRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol\":{\"keccak256\":\"0x401971511b7ab4f784cac3073adfb1d03610e7ae4117f8da4a5044b5130fc65b\",\"urls\":[\"bzzr://50190502bd6cdd85765b89632ca0178532ba759f126a90dc5c8a9124d5fff193\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol\":{\"keccak256\":\"0xf20e8b9d799331edb01094d5200b6de37f0351f3aa85691ff93917695a1f92ae\",\"urls\":[\"bzzr://a8d387d95fbbd7669f7437bda083a095b2f6c290ccf783ada190bde84e57b18c\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x6080604081905260006002819055600180546001600160a01b0319163317908190556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36112c68061005f6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a47c84bd1161008c578063be1bca1911610066578063be1bca19146102d2578063deeb2efe14610300578063efa74f1f1461032c578063f2fde38b1461039a576100cf565b8063a47c84bd146101ba578063a904d13d14610236578063ac5b1ba914610264576100cf565b806328c4f410146100d45780634e71e0c814610116578063715018a6146101205780638da5cb5b146101285780638f32d59b1461013057806392a29e301461014c575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166103c0565b604080516001600160a01b039092168252519081900360200190f35b61011e6103de565b005b61011e6104a5565b6100fa610539565b610138610548565b604080519115158252519081900360200190f35b6100fa6004803603602081101561016257600080fd5b810190602081018135600160201b81111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460018302840111600160201b831117156101af57600080fd5b509092509050610559565b6101e6600480360360408110156101d057600080fd5b506001600160a01b0381351690602001356105a9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022257818101518382015260200161020a565b505050509050019250505060405180910390f35b61011e6004803603604081101561024c57600080fd5b506001600160a01b0381358116916020013516610676565b61011e6004803603602081101561027a57600080fd5b810190602081018135600160201b81111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460018302840111600160201b831117156102c757600080fd5b509092509050610ace565b61011e600480360360408110156102e857600080fd5b506001600160a01b0381358116916020013516610cca565b6101e66004803603604081101561031657600080fd5b506001600160a01b038135169060200135610df9565b6100fa6004803603602081101561034257600080fd5b810190602081018135600160201b81111561035c57600080fd5b82018360208201111561036e57600080fd5b803590602001918460018302840111600160201b8311171561038f57600080fd5b509092509050610ebb565b61011e600480360360208110156103b057600080fd5b50356001600160a01b0316610ef5565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b031633146104405760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6104ad610548565b6104ef5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60006005600060068585604051808383808284379190910194855250506040805160209481900385019020546001600160a01b039081168652938501959095525050910160002054169392505050565b60606000826105bb57506002546105be565b50815b6060816040519080825280602002602001820160405280156105ea578160200160208202803883390190505b5090506000856001600160a01b03811661060b576106086004610f61565b90505b8382101561066b576001600160a01b0381166106265761066b565b8083838151811061063357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061065e600482610f80565b905060018201915061060b565b509095945050505050565b61067e610548565b6106c05760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6106cb600382610ff5565b156107205760408051600160e51b62461bcd02815260206004820152601a60248201527f7368696674657220616c72656164792072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416156107905760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b6060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051600160201b81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151600160201b81118282018710171561084b57600080fd5b5050929190505050905060006001600160a01b03166006826040518082805190602001908083835b602083106108925780518252601f199092019160209182019101610873565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b031692909214915061092390505760408051600160e51b62461bcd02815260206004820152601960248201527f73796d626f6c20616c7265616479207265676973746572656400000000000000604482015290519081900360640190fd5b61092e600383611014565b610939600484611014565b826006826040518082805190602001908083835b6020831061096c5780518252601f19909201916020918201910161094d565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201852080546001600160a01b03199081166001600160a01b0398891617909155898716600081815260058552929092208054909116968916968717905560028054600101905586519094879450925082918401908083835b60208310610a0c5780518252601f1990920191602091820191016109ed565b51815160209384036101000a60001901801990921691161790526040805192909401829003822081835289518383015289519096507fad1b5a1f09ea4cf872d9274b59cccba2c4fb43f92eaf5a54b705449417adce1e95508994929350839283019185019080838360005b83811015610a8f578181015183820152602001610a77565b50505050905090810190601f168015610abc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b610ad6610548565b610b185760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505080610ba15760408051600160e51b62461bcd02815260206004820152601560248201527f73796d626f6c206e6f7420726567697374657265640000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380821660009081526005602052604080822080546001600160a01b03198116909155905192169160069086908690808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094166001600160a01b03199094169390931790925550610c23905060038261102b565b610c2e60048361102b565b600280546000190190556040516001600160a01b038083169190841690869086908083838082843760408051939091018390038320602080855284018c905295507f7fa2fe506a0201656c1d87a8927899ad716ebd71b23fdabce40b56ae2205696394508b93508a92915081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b610cd2610548565b610d145760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001600160a01b038083166000908152600560205260409020541680610d845760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b610d8f60038261102b565b610d9a600383611014565b6001600160a01b0383811660008181526005602052604080822080546001600160a01b03191687861690811790915590519093851692917f78ef5fc29fe65855a5352e3954d6839f596542b47b3aeb40b84596358d06f09a91a4505050565b6060600082610e0b5750600254610e0e565b50815b606081604051908082528060200260200182016040528015610e3a578160200160208202803883390190505b5090506000856001600160a01b038116610e5b57610e586003610f61565b90505b8382101561066b576001600160a01b038116610e765761066b565b80838381518110610e8357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610eae600382610f80565b9050600182019150610e5b565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b610efd610548565b610f3f5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805260209190915260409020600101546001600160a01b031690565b6000610f8c8383610ff5565b610fd15760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6001600160a01b03166000908152602091909152604090205460ff1690565b611027826110218461110d565b8361112f565b5050565b6110358282610ff5565b61107a5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b03811661108d57611027565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b60008080526020829052604090205461010090046001600160a01b0316919050565b6111398382610ff5565b1561118e5760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111988383610ff5565b806111aa57506001600160a01b038216155b6111ef5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff191617905556fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058202404f2af812c86565d29c0a114533181e32f56b33e64dfff4ffa0bb8d6c78d460029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a47c84bd1161008c578063be1bca1911610066578063be1bca19146102d2578063deeb2efe14610300578063efa74f1f1461032c578063f2fde38b1461039a576100cf565b8063a47c84bd146101ba578063a904d13d14610236578063ac5b1ba914610264576100cf565b806328c4f410146100d45780634e71e0c814610116578063715018a6146101205780638da5cb5b146101285780638f32d59b1461013057806392a29e301461014c575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166103c0565b604080516001600160a01b039092168252519081900360200190f35b61011e6103de565b005b61011e6104a5565b6100fa610539565b610138610548565b604080519115158252519081900360200190f35b6100fa6004803603602081101561016257600080fd5b810190602081018135600160201b81111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460018302840111600160201b831117156101af57600080fd5b509092509050610559565b6101e6600480360360408110156101d057600080fd5b506001600160a01b0381351690602001356105a9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022257818101518382015260200161020a565b505050509050019250505060405180910390f35b61011e6004803603604081101561024c57600080fd5b506001600160a01b0381358116916020013516610676565b61011e6004803603602081101561027a57600080fd5b810190602081018135600160201b81111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460018302840111600160201b831117156102c757600080fd5b509092509050610ace565b61011e600480360360408110156102e857600080fd5b506001600160a01b0381358116916020013516610cca565b6101e66004803603604081101561031657600080fd5b506001600160a01b038135169060200135610df9565b6100fa6004803603602081101561034257600080fd5b810190602081018135600160201b81111561035c57600080fd5b82018360208201111561036e57600080fd5b803590602001918460018302840111600160201b8311171561038f57600080fd5b509092509050610ebb565b61011e600480360360208110156103b057600080fd5b50356001600160a01b0316610ef5565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b031633146104405760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6104ad610548565b6104ef5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60006005600060068585604051808383808284379190910194855250506040805160209481900385019020546001600160a01b039081168652938501959095525050910160002054169392505050565b60606000826105bb57506002546105be565b50815b6060816040519080825280602002602001820160405280156105ea578160200160208202803883390190505b5090506000856001600160a01b03811661060b576106086004610f61565b90505b8382101561066b576001600160a01b0381166106265761066b565b8083838151811061063357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061065e600482610f80565b905060018201915061060b565b509095945050505050565b61067e610548565b6106c05760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6106cb600382610ff5565b156107205760408051600160e51b62461bcd02815260206004820152601a60248201527f7368696674657220616c72656164792072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416156107905760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b6060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051600160201b81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151600160201b81118282018710171561084b57600080fd5b5050929190505050905060006001600160a01b03166006826040518082805190602001908083835b602083106108925780518252601f199092019160209182019101610873565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b031692909214915061092390505760408051600160e51b62461bcd02815260206004820152601960248201527f73796d626f6c20616c7265616479207265676973746572656400000000000000604482015290519081900360640190fd5b61092e600383611014565b610939600484611014565b826006826040518082805190602001908083835b6020831061096c5780518252601f19909201916020918201910161094d565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201852080546001600160a01b03199081166001600160a01b0398891617909155898716600081815260058552929092208054909116968916968717905560028054600101905586519094879450925082918401908083835b60208310610a0c5780518252601f1990920191602091820191016109ed565b51815160209384036101000a60001901801990921691161790526040805192909401829003822081835289518383015289519096507fad1b5a1f09ea4cf872d9274b59cccba2c4fb43f92eaf5a54b705449417adce1e95508994929350839283019185019080838360005b83811015610a8f578181015183820152602001610a77565b50505050905090810190601f168015610abc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b610ad6610548565b610b185760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505080610ba15760408051600160e51b62461bcd02815260206004820152601560248201527f73796d626f6c206e6f7420726567697374657265640000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380821660009081526005602052604080822080546001600160a01b03198116909155905192169160069086908690808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094166001600160a01b03199094169390931790925550610c23905060038261102b565b610c2e60048361102b565b600280546000190190556040516001600160a01b038083169190841690869086908083838082843760408051939091018390038320602080855284018c905295507f7fa2fe506a0201656c1d87a8927899ad716ebd71b23fdabce40b56ae2205696394508b93508a92915081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b610cd2610548565b610d145760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001600160a01b038083166000908152600560205260409020541680610d845760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b610d8f60038261102b565b610d9a600383611014565b6001600160a01b0383811660008181526005602052604080822080546001600160a01b03191687861690811790915590519093851692917f78ef5fc29fe65855a5352e3954d6839f596542b47b3aeb40b84596358d06f09a91a4505050565b6060600082610e0b5750600254610e0e565b50815b606081604051908082528060200260200182016040528015610e3a578160200160208202803883390190505b5090506000856001600160a01b038116610e5b57610e586003610f61565b90505b8382101561066b576001600160a01b038116610e765761066b565b80838381518110610e8357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610eae600382610f80565b9050600182019150610e5b565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b610efd610548565b610f3f5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805260209190915260409020600101546001600160a01b031690565b6000610f8c8383610ff5565b610fd15760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6001600160a01b03166000908152602091909152604090205460ff1690565b611027826110218461110d565b8361112f565b5050565b6110358282610ff5565b61107a5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b03811661108d57611027565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b60008080526020829052604090205461010090046001600160a01b0316919050565b6111398382610ff5565b1561118e5760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111988383610ff5565b806111aa57506001600160a01b038216155b6111ef5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff191617905556fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058202404f2af812c86565d29c0a114533181e32f56b33e64dfff4ffa0bb8d6c78d460029", - "sourceMap": "268:6839:10:-;;;;;942:1;920:23;;;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;-1:-1:-1;;;;;595:6:13;;562:40;;942:1:10;;562:40:13;268:6839:10;;;;;;", - "deployedSourceMap": "268:6839:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;268:6839:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6271:146;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6271:146:10;-1:-1:-1;;;;;6271:146:10;;:::i;:::-;;;;-1:-1:-1;;;;;6271:146:10;;;;;;;;;;;;;;2166:177:13;;;:::i;:::-;;1688:137;;;:::i;672:77::-;;;:::i;1244:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;6607:168:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6607:168:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6607:168:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6607:168:10;;;;;;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;-1:-1;6607:168:10;;-1:-1:-1;6607:168:10;-1:-1:-1;6607:168:10;:::i;5297:772::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5297:772:10;;;;;;;;:::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;5297:772:10;;;;;;;;;;;;;;;;;1654:929;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1654:929:10;;;;;;;;;;:::i;3714:697::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3714:697:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3714:697:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3714:697:10;;;;;;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;-1:-1;3714:697:10;;-1:-1:-1;3714:697:10;-1:-1:-1;3714:697:10;:::i;2872:646::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2872:646:10;;;;;;;;;;:::i;4480:742::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4480:742:10;;;;;;;;:::i;6966:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6966:139:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6966:139:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6966:139:10;;;;;;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;-1:-1;6966:139:10;;-1:-1:-1;6966:139:10;-1:-1:-1;6966:139:10;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;6271:146:10:-;-1:-1:-1;;;;;6380:29:10;;;6344:8;6380:29;;;:14;:29;;;;;;;;6271:146::o;2166:177:13:-;1091:13;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:13;;;-1:-1:-1;;;;;2289:13:13;;2280:22;;;;2310:26;;;2166:177::o;1688:137::-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;6607:168:10:-;6688:8;6724:14;:43;6739:13;6753:12;;6739:27;;;;;30:3:-1;22:6;14;1:33;45:16;;;;6739:27:10;;;-1:-1:-1;;6739:27:10;;;;;;;;;;;;;-1:-1:-1;;;;;6739:27:10;;;6724:43;;;;;;;;;-1:-1:-1;;6724:43:10;;-1:-1:-1;6724:43:10;;;;6607:168;-1:-1:-1;;;6607:168:10:o;5297:772::-;5378:16;5406:13;5433:11;5429:106;;-1:-1:-1;5468:11:10;;5429:106;;;-1:-1:-1;5518:6:10;5429:106;5545:30;5592:5;5578:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5578:20:10;-1:-1:-1;5545:53:10;-1:-1:-1;5658:9:10;5696:6;-1:-1:-1;;;;;5716:18:10;;5712:90;;5757:34;5774:16;5757;:34::i;:::-;5750:41;;5712:90;5823:5;5819:1;:9;5812:221;;;-1:-1:-1;;;;;5848:18:10;;5844:62;;5886:5;;5844:62;5938:4;5919:13;5933:1;5919:16;;;;;;;;;;;;;:23;-1:-1:-1;;;;;5919:23:10;;;-1:-1:-1;;;;;5919:23:10;;;;;5963:39;5979:16;5997:4;5963:15;:39::i;:::-;5956:46;;6021:1;6016:6;;;;5812:221;;;-1:-1:-1;6049:13:10;;5297:772;-1:-1:-1;;;;;5297:772:10:o;1654:929::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1840:49:10;1860:11;1873:15;1840:19;:49::i;:::-;1839:50;1831:89;;;;;-1:-1:-1;;;;;1831:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1938:29:10;;;1979:3;1938:29;;;:14;:29;;;;;;;:45;1930:82;;;;;-1:-1:-1;;;;;1930:82:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:20;2058:13;-1:-1:-1;;;;;2045:34:10;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2045:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2045:36:10;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2045:36:10;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2045:36:10;;;;;;-1:-1:-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;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;2045:36:10;;;;;;2022:59;;2132:3;-1:-1:-1;;;;;2099:37:10;:13;2113:6;2099:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2099:21:10;;;;;-1:-1:-1;2099:21:10;;;;;;;;;;;-1:-1:-1;;;;;2099:21:10;:37;;;;;-1:-1:-1;2091:75:10;;-1:-1:-1;2091:75:10;;;;-1:-1:-1;;;;;2091:75:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:47;2230:11;2243:15;2212:17;:47::i;:::-;2311:50;2329:16;2347:13;2311:17;:50::i;:::-;2396:13;2372;2386:6;2372:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2372:21:10;;;;;-1:-1:-1;2372:21:10;;;;;;;;;;;:37;;-1:-1:-1;;;;;;2372:37:10;;;-1:-1:-1;;;;;2372:37:10;;;;;;;2419:29;;;-1:-1:-1;2419:29:10;;;:14;:29;;;;;;:47;;;;;;;;;;;;;2476:11;:16;;-1:-1:-1;2476:16:10;;;2508:68;;2419:29;;2508:68;;-1:-1:-1;2372:21:10;-1:-1:-1;2372:21:10;;2508:68;;;;2372:21;2508:68;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2508:68:10;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2508:68:10;;-1:-1:-1;2508:68:10;;;;-1:-1:-1;2508:68:10;;;;;;;;;;;-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;2508:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:13;1654:929:10;;:::o;3714:697::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3824:20:10;3847:13;3861:7;;3847:22;;;;;30:3:-1;22:6;14;1:33;45:16;;;;3847:22:10;;;-1:-1:-1;;3847:22:10;;;;;;;;;;;;-1:-1:-1;;;;;3847:22:10;;-1:-1:-1;;;3887:28:10;3879:62;;;;;-1:-1:-1;;;;;3879:62:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4012:28:10;;;3987:22;4012:28;;;:14;:28;;;;;;;;-1:-1:-1;;;;;;4087:43:10;;;;;4140:22;;4012:28;;;4140:13;;4154:7;;;;4140:22;4154:7;;;;4140:22;1:33:-1;45:16;;;;4140:22:10;;;-1:-1:-1;;4140:22:10;;;;;;;;;;;:37;;-1:-1:-1;;;;;4140:37:10;;;;-1:-1:-1;;;;;;4140:37:10;;;;;;;;;;-1:-1:-1;4187:46:10;;-1:-1:-1;4205:11:10;4218:14;4187:17;:46::i;:::-;4243:49;4261:16;4279:12;4243:17;:49::i;:::-;4302:11;:16;;-1:-1:-1;;4302:16:10;;;4334:70;;-1:-1:-1;;;;;4334:70:10;;;;;;;;4366:7;;;;4334:70;4366:7;;;;4334:70;1:33:-1;4334:70:10;;;45:16:-1;;;;4334:70:10;;;;;;;;;;;;;;;-1:-1:-1;4334:70:10;;-1:-1:-1;4357:7:10;;-1:-1:-1;4357:7:10;;4334:70;-1:-1:-1;4334:70:10;;;;4357:7;;;;4334:70;1:33:-1;99:1;81:16;;;74:27;4334:70:10;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;4334:70:10;;;;-1:-1:-1;4334:70:10;;-1:-1:-1;;;;4334:70:10;923:1:13;;3714:697:10;;:::o;2872:646::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;3052:29:10;;;3027:22;3052:29;;;:14;:29;;;;;;;3099:45;3091:78;;;;;-1:-1:-1;;;;;3091:78:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3218:46;3236:11;3249:14;3218:17;:46::i;:::-;3316:50;3334:11;3347:18;3316:17;:50::i;:::-;-1:-1:-1;;;;;3377:29:10;;;;;;;:14;:29;;;;;;:50;;-1:-1:-1;;;;;;3377:50:10;;;;;;;;;;3443:68;;3377:50;;3443:68;;;3377:29;3443:68;;;923:1:13;2872:646:10;;:::o;4480:742::-;4556:16;4584:13;4611:11;4607:106;;-1:-1:-1;4646:11:10;;4607:106;;;-1:-1:-1;4696:6:10;4607:106;4723:25;4765:5;4751:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4751:20:10;-1:-1:-1;4723:48:10;-1:-1:-1;4831:9:10;4869:6;-1:-1:-1;;;;;4889:18:10;;4885:85;;4930:29;4947:11;4930:16;:29::i;:::-;4923:36;;4885:85;4991:5;4987:1;:9;4980:211;;;-1:-1:-1;;;;;5016:18:10;;5012:62;;5054:5;;5012:62;5101:4;5087:8;5096:1;5087:11;;;;;;;;;;;;;:18;-1:-1:-1;;;;;5087:18:10;;;-1:-1:-1;;;;;5087:18:10;;;;;5126:34;5142:11;5155:4;5126:15;:34::i;:::-;5119:41;;5179:1;5174:6;;;;4980:211;;6966:139;7045:7;7071:13;7085:12;;7071:27;;;;;30:3:-1;22:6;14;1:33;45:16;;;;7071:27:10;;;-1:-1:-1;;7071:27:10;;;;;;;;;;;;-1:-1:-1;;;;;7071:27:10;;-1:-1:-1;;;6966:139:10;;;;:::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:13;-1:-1:-1;;;;;2045:24:13;;;;;;;;;;1975:101::o;4696:110:16:-;4753:7;4779:15;;;;;;;;;;;:20;;;-1:-1:-1;;;;;4779:20:16;;4696:110::o;5148:177::-;5218:7;5245:20;5254:4;5260;5245:8;:20::i;:::-;5237:44;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5298:15:16;;;:9;:15;;;;;;;;;;;;:20;;;;;5148:177::o;4334:126::-;-1:-1:-1;;;;;4431:15:16;4408:4;4431:15;;;;;;;;;;;:22;;;;4334:126::o;3808:163::-;3930:34;3942:4;3948:9;3952:4;3948:3;:9::i;:::-;3959:4;3930:11;:34::i;:::-;3808:163;;:::o;2757:514::-;2833:20;2842:4;2848;2833:8;:20::i;:::-;2825:44;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2883:12:16;;2879:49;;2911:7;;2879:49;-1:-1:-1;;;;;2949:15:16;;;2937:9;2949:15;;;;;;;;;;;;:24;;;2995:20;;;;;2949:24;;;;;;;3026:12;;;;;;:17;;;:21;;2995:20;;;;-1:-1:-1;;;;;;3026:21:16;;;;;;;;3057:12;;;;;;:25;;-1:-1:-1;;;;;;3057:25:16;;;;;;;;3202:15;;;;:30;;-1:-1:-1;;;;;;3242:22:16;;;;;;;;2757:514::o;5030:112::-;5085:7;5111:15;;;;;;;;;;:24;;;;-1:-1:-1;;;;;5111:24:16;5030:112;;;:::o;1906:541::-;2007:23;2016:4;2022:7;2007:8;:23::i;:::-;2006:24;1998:52;;;;;-1:-1:-1;;;;;1998:52:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:22;2077:4;2083:6;2068:8;:22::i;:::-;:40;;;-1:-1:-1;;;;;;2094:14:16;;;2068:40;2060:64;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2208:17:16;;;2196:9;2208:17;;;;;;;;;;;;:22;;;;;;2241:18;;;;;;;;;:36;;-1:-1:-1;;;;;;2241:36:16;;;2208:22;2241:36;;;;;;2287:23;;;:27;;2208:22;;;;-1:-1:-1;;;;;;2287:27:16;;;;;;;;2324:32;;;;;;;;;;2366:12;;;;;;:31;;;;;;;;;;;;;;;2408:18;;;;:32;;-1:-1:-1;;2408:32:16;;;;1906:541::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"../libraries/Claimable.sol\";\nimport \"./ERC20Shifted.sol\";\nimport \"../libraries/LinkedList.sol\";\nimport \"./IShifter.sol\";\n\n/// @notice ShifterRegistry is a mapping from assets to their associated\n/// ERC20Shifted and Shifter contracts.\ncontract ShifterRegistry is Claimable {\n\n /// @dev The symbol is included twice because strings have to be hashed\n /// first in order to be used as a log index/topic.\n event LogShifterRegistered(string _symbol, string indexed _indexedSymbol, address indexed _tokenAddress, address indexed _shifterAddress);\n event LogShifterDeregistered(string _symbol, string indexed _indexedSymbol, address indexed _tokenAddress, address indexed _shifterAddress);\n event LogShifterUpdated(address indexed _tokenAddress, address indexed _currentShifterAddress, address indexed _newShifterAddress);\n\n /// @notice The number of shifters registered\n uint256 numShifters = 0;\n\n /// @notice A list of shifter contracts\n LinkedList.List private shifterList;\n\n /// @notice A list of shifted token contracts\n LinkedList.List private shiftedTokenList;\n\n /// @notice A map of token addresses to canonical shifter addresses\n mapping (address=>address) private shifterByToken;\n\n /// @notice A map of token symbols to canonical shifter addresses\n mapping (string=>address) private tokenBySymbol;\n\n /// @notice Allow the owner to set the shifter address for a given\n /// ERC20Shifted token contract.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n /// @param _shifterAddress The address of the Shifter contract.\n function setShifter(address _tokenAddress, address _shifterAddress) external onlyOwner {\n // Check that token, shifter and symbol haven't already been registered\n require(!LinkedList.isInList(shifterList, _shifterAddress), \"shifter already registered\");\n require(shifterByToken[_tokenAddress] == address(0x0), \"token already registered\");\n string memory symbol = ERC20Shifted(_tokenAddress).symbol();\n require(tokenBySymbol[symbol] == address(0x0), \"symbol already registered\");\n\n // Add to list of shifters\n LinkedList.append(shifterList, _shifterAddress);\n\n // Add to list of shifted tokens\n LinkedList.append(shiftedTokenList, _tokenAddress);\n\n tokenBySymbol[symbol] = _tokenAddress;\n shifterByToken[_tokenAddress] = _shifterAddress;\n numShifters += 1;\n\n emit LogShifterRegistered(symbol, symbol, _tokenAddress, _shifterAddress);\n }\n\n /// @notice Allow the owner to update the shifter address for a given\n /// ERC20Shifted token contract.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n /// @param _newShifterAddress The updated address of the Shifter contract.\n function updateShifter(address _tokenAddress, address _newShifterAddress) external onlyOwner {\n // Check that token, shifter are registered\n address currentShifter = shifterByToken[_tokenAddress];\n require(shifterByToken[_tokenAddress] != address(0x0), \"token not registered\");\n\n // Remove to list of shifters\n LinkedList.remove(shifterList, currentShifter);\n\n // Add to list of shifted tokens\n LinkedList.append(shifterList, _newShifterAddress);\n\n shifterByToken[_tokenAddress] = _newShifterAddress;\n\n emit LogShifterUpdated(_tokenAddress, currentShifter, _newShifterAddress);\n }\n\n /// @notice Allows the owner to remove the shifter address for a given\n /// ERC20shifter token contract.\n ///\n /// @param _symbol The symbol of the token to deregister.\n function removeShifter(string calldata _symbol) external onlyOwner {\n // Look up token address\n address tokenAddress = tokenBySymbol[_symbol];\n require(tokenAddress != address(0x0), \"symbol not registered\");\n\n // Look up shifter address\n address shifterAddress = shifterByToken[tokenAddress];\n\n // Remove token and shifter\n shifterByToken[tokenAddress] = address(0x0);\n tokenBySymbol[_symbol] = address(0x0);\n LinkedList.remove(shifterList, shifterAddress);\n LinkedList.remove(shiftedTokenList, tokenAddress);\n numShifters -= 1;\n\n emit LogShifterDeregistered(_symbol, _symbol, tokenAddress, shifterAddress);\n }\n\n /// @dev To get all the registered shifters use count = 0.\n function getShifters(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count;\n if (_count == 0) {\n count = numShifters;\n } else {\n count = _count;\n }\n\n address[] memory shifters = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = LinkedList.begin(shifterList);\n }\n\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n shifters[n] = next;\n next = LinkedList.next(shifterList, next);\n n += 1;\n }\n return shifters;\n }\n\n /// @dev To get all the registered shifted tokens use count = 0.\n function getShiftedTokens(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count;\n if (_count == 0) {\n count = numShifters;\n } else {\n count = _count;\n }\n\n address[] memory shiftedTokens = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = LinkedList.begin(shiftedTokenList);\n }\n\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n shiftedTokens[n] = next;\n next = LinkedList.next(shiftedTokenList, next);\n n += 1;\n }\n return shiftedTokens;\n }\n\n /// @notice Returns the Shifter address for the given ERC20Shifted token\n /// contract address.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n function getShifterByToken(address _tokenAddress) external view returns (IShifter) {\n return IShifter(shifterByToken[_tokenAddress]);\n }\n\n /// @notice Returns the Shifter address for the given ERC20Shifted token\n /// symbol.\n ///\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.\n function getShifterBySymbol(string calldata _tokenSymbol) external view returns (IShifter) {\n return IShifter(shifterByToken[tokenBySymbol[_tokenSymbol]]);\n }\n\n /// @notice Returns the ERC20Shifted address for the given token symbol.\n ///\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n /// lookup.\n function getTokenBySymbol(string calldata _tokenSymbol) external view returns (address) {\n return tokenBySymbol[_tokenSymbol];\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "exportedSymbols": { - "ShifterRegistry": [ - 3809 - ] - }, - "id": 3810, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3321, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 3322, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 4282, - "src": "25:36:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 3323, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2877, - "src": "62:28:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 3324, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 5059, - "src": "91:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol", - "file": "./IShifter.sol", - "id": 3325, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2902, - "src": "129:24:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3326, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "296:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 3327, - "nodeType": "InheritanceSpecifier", - "src": "296:9:10" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice ShifterRegistry is a mapping from assets to their associated\n ERC20Shifted and Shifter contracts.", - "fullyImplemented": true, - "id": 3809, - "linearizedBaseContracts": [ - 3809, - 4281 - ], - "name": "ShifterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev The symbol is included twice because strings have to be hashed\n first in order to be used as a log index/topic.", - "id": 3337, - "name": "LogShifterRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3329, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "472:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3328, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3331, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "488:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3330, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "488:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3333, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "519:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "519:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3335, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "550:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3334, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "550:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:111:10" - }, - "src": "445:138:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3347, - "name": "LogShifterDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "617:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3338, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "617:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "633:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "633:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3343, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "664:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "664:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3345, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "695:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:111:10" - }, - "src": "588:140:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3355, - "name": "LogShifterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3349, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "757:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3351, - "indexed": true, - "name": "_currentShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "788:38:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3353, - "indexed": true, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "828:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "756:107:10" - }, - "src": "733:131:10" - }, - { - "constant": false, - "id": 3358, - "name": "numShifters", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "920:23:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "920:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 3357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3360, - "name": "shifterList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "994:35:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3359, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "994:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3362, - "name": "shiftedTokenList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1086:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3361, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "1086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3366, - "name": "shifterByToken", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1205:49:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3365, - "keyType": { - "id": 3363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1205:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3364, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1223:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3370, - "name": "tokenBySymbol", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1331:47:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "typeName": { - "id": 3369, - "keyType": { - "id": 3367, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "1331:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "valueType": { - "id": 3368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1348:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 3456, - "nodeType": "Block", - "src": "1741:842:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1839:50:10", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3382, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "1860:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3383, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "1873:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3380, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "1840:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isInList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "1840:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (bool)" - } - }, - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:49:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7368696674657220616c72656164792072656769737465726564", - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1891:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - }, - "value": "shifter already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - } - ], - "id": 3379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1831:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "1831:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3390, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "1938:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3392, - "indexExpression": { - "argumentTypes": null, - "id": 3391, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "1953:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1938:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1971:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1971:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1938:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 3397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 3389, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1930:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3399, - "nodeType": "ExpressionStatement", - "src": "1930:82:10" - }, - { - "assignments": [ - 3401 - ], - "declarations": [ - { - "constant": false, - "id": 3401, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3456, - "src": "2022:20:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3400, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2022:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3407, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3403, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2058:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3402, - "name": "ERC20Shifted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "2045:12:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Shifted_$2864_$", - "typeString": "type(contract ERC20Shifted)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:27:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7947, - "src": "2045:34:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 3406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:36:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3409, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2099:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3411, - "indexExpression": { - "argumentTypes": null, - "id": 3410, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2113:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2132:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2099:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c20616c72656164792072656769737465726564", - "id": 3416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2138:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - }, - "value": "symbol already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - } - ], - "id": 3408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "2091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:75:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3418, - "nodeType": "ExpressionStatement", - "src": "2091:75:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "2230:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3423, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2243:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3419, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2212:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2212:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3425, - "nodeType": "ExpressionStatement", - "src": "2212:47:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3429, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "2329:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3430, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2347:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3426, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2311:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2311:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "2311:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3433, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2372:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3435, - "indexExpression": { - "argumentTypes": null, - "id": 3434, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2386:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2372:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3436, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2396:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2372:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3438, - "nodeType": "ExpressionStatement", - "src": "2372:37:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3439, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "2419:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3441, - "indexExpression": { - "argumentTypes": null, - "id": 3440, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2434:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3442, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2451:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2419:47:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3444, - "nodeType": "ExpressionStatement", - "src": "2419:47:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3445, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "2476:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2491:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2476:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3448, - "nodeType": "ExpressionStatement", - "src": "2476:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3450, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2529:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3451, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2537:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3452, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2545:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3453, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2560:15:10", - "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_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3449, - "name": "LogShifterRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "2508:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2508:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3455, - "nodeType": "EmitStatement", - "src": "2503:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to set the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _shifterAddress The address of the Shifter contract.", - "id": 3457, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3377, - "modifierName": { - "argumentTypes": null, - "id": 3376, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "1731:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1731:9:10" - } - ], - "name": "setShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3372, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1674:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3374, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1697:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3373, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1697:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:48:10" - }, - "returnParameters": { - "id": 3378, - "nodeType": "ParameterList", - "parameters": [], - "src": "1741:0:10" - }, - "scope": 3809, - "src": "1654:929:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3509, - "nodeType": "Block", - "src": "2965:553:10", - "statements": [ - { - "assignments": [ - 3467 - ], - "declarations": [ - { - "constant": false, - "id": 3467, - "name": "currentShifter", - "nodeType": "VariableDeclaration", - "scope": 3509, - "src": "3027:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3027:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3471, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3468, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3052:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3470, - "indexExpression": { - "argumentTypes": null, - "id": 3469, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3067:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3027:54:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3473, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3099:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3475, - "indexExpression": { - "argumentTypes": null, - "id": 3474, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3114:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3099:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3132:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3132:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3099:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3146:22:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 3472, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "3091:78:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3486, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3236:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3487, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3249:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3483, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3218:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "3218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3218:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3489, - "nodeType": "ExpressionStatement", - "src": "3218:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3493, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3334:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3494, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3347:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3490, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3316:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "3316:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3316:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3496, - "nodeType": "ExpressionStatement", - "src": "3316:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3377:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3392:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3377:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3500, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3409:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3377:50:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3502, - "nodeType": "ExpressionStatement", - "src": "3377:50:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3504, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3461:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3505, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3476:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3506, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3492:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3503, - "name": "LogShifterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "3443:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3443:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3508, - "nodeType": "EmitStatement", - "src": "3438:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to update the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _newShifterAddress The updated address of the Shifter contract.", - "id": 3510, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3464, - "modifierName": { - "argumentTypes": null, - "id": 3463, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "2955:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2955:9:10" - } - ], - "name": "updateShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3459, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2895:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2895:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3461, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2918:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2894:51:10" - }, - "returnParameters": { - "id": 3465, - "nodeType": "ParameterList", - "parameters": [], - "src": "2965:0:10" - }, - "scope": 3809, - "src": "2872:646:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3579, - "nodeType": "Block", - "src": "3781:630:10", - "statements": [ - { - "assignments": [ - 3518 - ], - "declarations": [ - { - "constant": false, - "id": 3518, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3824:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3522, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "3847:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "3861:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3847:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3824:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3524, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3887:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3911:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3887:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c206e6f742072656769737465726564", - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:23:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - }, - "value": "symbol not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - } - ], - "id": 3523, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3879:62:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3531, - "nodeType": "ExpressionStatement", - "src": "3879:62:10" - }, - { - "assignments": [ - 3533 - ], - "declarations": [ - { - "constant": false, - "id": 3533, - "name": "shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3987:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3987:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3537, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3534, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4012:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3536, - "indexExpression": { - "argumentTypes": null, - "id": 3535, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4027:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3987:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3538, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4087:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3540, - "indexExpression": { - "argumentTypes": null, - "id": 3539, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4087:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4126:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4087:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3545, - "nodeType": "ExpressionStatement", - "src": "4087:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3546, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "4140:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3548, - "indexExpression": { - "argumentTypes": null, - "id": 3547, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4140:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4165:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4140:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3553, - "nodeType": "ExpressionStatement", - "src": "4140:37:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4205:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3558, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4218:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3554, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4187:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4187:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4187:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3560, - "nodeType": "ExpressionStatement", - "src": "4187:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3564, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "4261:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3565, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4279:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3561, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4243:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4243:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4243:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3567, - "nodeType": "ExpressionStatement", - "src": "4243:49:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3568, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4302:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4302:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3571, - "nodeType": "ExpressionStatement", - "src": "4302:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3573, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4357:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3574, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4366:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3575, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4375:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3576, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4389:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3572, - "name": "LogShifterDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "4334:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4334:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "EmitStatement", - "src": "4329:75:10" - } - ] - }, - "documentation": "@notice Allows the owner to remove the shifter address for a given\n ERC20shifter token contract.\n\n /// @param _symbol The symbol of the token to deregister.", - "id": 3580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3515, - "modifierName": { - "argumentTypes": null, - "id": 3514, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3771:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3771:9:10" - } - ], - "name": "removeShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3512, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3580, - "src": "3737:23:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3511, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3737:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:25:10" - }, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [], - "src": "3781:0:10" - }, - "scope": 3809, - "src": "3714:697:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3672, - "nodeType": "Block", - "src": "4574:648:10", - "statements": [ - { - "assignments": [ - 3591 - ], - "declarations": [ - { - "constant": false, - "id": 3591, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4584:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3592, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4584:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3593, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4611:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3605, - "nodeType": "Block", - "src": "4674:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3601, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4688:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3602, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4688:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "4688:14:10" - } - ] - }, - "id": 3606, - "nodeType": "IfStatement", - "src": "4607:106:10", - "trueBody": { - "id": 3600, - "nodeType": "Block", - "src": "4624:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3596, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3597, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4646:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4638:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "4638:19:10" - } - ] - } - }, - { - "assignments": [ - 3610 - ], - "declarations": [ - { - "constant": false, - "id": 3610, - "name": "shifters", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4723:25:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3609, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4723:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3616, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3614, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4765:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4751:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3611, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3612, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4755:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4723:48:10" - }, - { - "assignments": [ - 3618 - ], - "declarations": [ - { - "constant": false, - "id": 3618, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4831:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3620, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4843:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:13:10" - }, - { - "assignments": [ - 3622 - ], - "declarations": [ - { - "constant": false, - "id": 3622, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4854:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4854:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3624, - "initialValue": { - "argumentTypes": null, - "id": 3623, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3582, - "src": "4869:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4854:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3625, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4889:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4897:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4889:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3638, - "nodeType": "IfStatement", - "src": "4885:85:10", - "trueBody": { - "id": 3637, - "nodeType": "Block", - "src": "4909:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4923:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3633, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4947:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4930:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "4930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4923:36:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3636, - "nodeType": "ExpressionStatement", - "src": "4923:36:10" - } - ] - } - }, - { - "body": { - "id": 3668, - "nodeType": "Block", - "src": "4998:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3642, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5016:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5032:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5024:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3649, - "nodeType": "IfStatement", - "src": "5012:62:10", - "trueBody": { - "id": 3648, - "nodeType": "Block", - "src": "5036:38:10", - "statements": [ - { - "id": 3647, - "nodeType": "Break", - "src": "5054:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3650, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5087:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3652, - "indexExpression": { - "argumentTypes": null, - "id": 3651, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5096:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5087:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3653, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5101:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5087:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3655, - "nodeType": "ExpressionStatement", - "src": "5087:18:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3656, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5119:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3659, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "5142:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3660, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5155:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3657, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5126:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3663, - "nodeType": "ExpressionStatement", - "src": "5119:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3664, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5174:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5179:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5174:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3667, - "nodeType": "ExpressionStatement", - "src": "5174:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3639, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "4987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3640, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4991:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4987:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3669, - "nodeType": "WhileStatement", - "src": "4980:211:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3670, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5207:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3589, - "id": 3671, - "nodeType": "Return", - "src": "5200:15:10" - } - ] - }, - "documentation": "@dev To get all the registered shifters use count = 0.", - "id": 3673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3582, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4501:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4501:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3584, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4517:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4500:32:10" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3588, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4556:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4556:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3587, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4556:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4555:18:10" - }, - "scope": 3809, - "src": "4480:742:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3765, - "nodeType": "Block", - "src": "5396:673:10", - "statements": [ - { - "assignments": [ - 3684 - ], - "declarations": [ - { - "constant": false, - "id": 3684, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5406:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3685, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5406:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3686, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5433:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5443:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5433:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3698, - "nodeType": "Block", - "src": "5496:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3694, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5510:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3695, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5518:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5510:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "5510:14:10" - } - ] - }, - "id": 3699, - "nodeType": "IfStatement", - "src": "5429:106:10", - "trueBody": { - "id": 3693, - "nodeType": "Block", - "src": "5446:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3689, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5460:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3690, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "5468:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5460:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3692, - "nodeType": "ExpressionStatement", - "src": "5460:19:10" - } - ] - } - }, - { - "assignments": [ - 3703 - ], - "declarations": [ - { - "constant": false, - "id": 3703, - "name": "shiftedTokens", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5545:30:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3702, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5545:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3709, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5592:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5578:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5582:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5582:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5578:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5545:53:10" - }, - { - "assignments": [ - 3711 - ], - "declarations": [ - { - "constant": false, - "id": 3711, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5658:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3713, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5670:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5658:13:10" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5681:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3714, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3717, - "initialValue": { - "argumentTypes": null, - "id": 3716, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "5696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5681:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3718, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5716:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5732:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5724:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5716:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3731, - "nodeType": "IfStatement", - "src": "5712:90:10", - "trueBody": { - "id": 3730, - "nodeType": "Block", - "src": "5736:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3723, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5750:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3726, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5774:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3724, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "5757:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5757:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5750:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3729, - "nodeType": "ExpressionStatement", - "src": "5750:41:10" - } - ] - } - }, - { - "body": { - "id": 3761, - "nodeType": "Block", - "src": "5830:203:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3735, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5848:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5864:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5856:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5848:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3742, - "nodeType": "IfStatement", - "src": "5844:62:10", - "trueBody": { - "id": 3741, - "nodeType": "Block", - "src": "5868:38:10", - "statements": [ - { - "id": 3740, - "nodeType": "Break", - "src": "5886:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3743, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "5919:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3745, - "indexExpression": { - "argumentTypes": null, - "id": 3744, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5933:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5919:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5938:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5919:23:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3748, - "nodeType": "ExpressionStatement", - "src": "5919:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3749, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5956:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3752, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3753, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5997:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3750, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5963:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5963:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5956:46:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "5956:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3757, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "6016:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6021:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6016:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3760, - "nodeType": "ExpressionStatement", - "src": "6016:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3732, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3733, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5823:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5819:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3762, - "nodeType": "WhileStatement", - "src": "5812:221:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3763, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6049:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3682, - "id": 3764, - "nodeType": "Return", - "src": "6042:20:10" - } - ] - }, - "documentation": "@dev To get all the registered shifted tokens use count = 0.", - "id": 3766, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShiftedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3675, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5323:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3677, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5339:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5322:32:10" - }, - "returnParameters": { - "id": 3682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3681, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5378:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5378:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3680, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5378:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5377:18:10" - }, - "scope": 3809, - "src": "5297:772:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "6354:63:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6380:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "6395:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6380:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3773, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6371:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6371:39:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3772, - "id": 3778, - "nodeType": "Return", - "src": "6364:46:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n contract address.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.", - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterByToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3768, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6298:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6298:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6297:23:10" - }, - "returnParameters": { - "id": 3772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3771, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6344:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3770, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6344:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:10:10" - }, - "scope": 3809, - "src": "6271:146:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3795, - "nodeType": "Block", - "src": "6698:77:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3788, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6724:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3792, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3789, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "6739:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3791, - "indexExpression": { - "argumentTypes": null, - "id": 3790, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "6753:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6739:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6724:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3787, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6715:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6715:53:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3786, - "id": 3794, - "nodeType": "Return", - "src": "6708:60:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.", - "id": 3796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6635:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3781, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6635:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6634:30:10" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3785, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6688:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3784, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6688:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6687:10:10" - }, - "scope": 3809, - "src": "6607:168:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3807, - "nodeType": "Block", - "src": "7054:51:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3803, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "7071:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3805, - "indexExpression": { - "argumentTypes": null, - "id": 3804, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3798, - "src": "7085:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7071:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3802, - "id": 3806, - "nodeType": "Return", - "src": "7064:34:10" - } - ] - }, - "documentation": "@notice Returns the ERC20Shifted address for the given token symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n lookup.", - "id": 3808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTokenBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3798, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "6992:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3797, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6992:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6991:30:10" - }, - "returnParameters": { - "id": 3802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3801, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "7045:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7045:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7044:9:10" - }, - "scope": 3809, - "src": "6966:139:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3810, - "src": "268:6839:10" - } - ], - "src": "0:7107:10" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "exportedSymbols": { - "ShifterRegistry": [ - 3809 - ] - }, - "id": 3810, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3321, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 3322, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 4282, - "src": "25:36:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 3323, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2877, - "src": "62:28:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 3324, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 5059, - "src": "91:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol", - "file": "./IShifter.sol", - "id": 3325, - "nodeType": "ImportDirective", - "scope": 3810, - "sourceUnit": 2902, - "src": "129:24:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3326, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "296:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 3327, - "nodeType": "InheritanceSpecifier", - "src": "296:9:10" - } - ], - "contractDependencies": [ - 4281 - ], - "contractKind": "contract", - "documentation": "@notice ShifterRegistry is a mapping from assets to their associated\n ERC20Shifted and Shifter contracts.", - "fullyImplemented": true, - "id": 3809, - "linearizedBaseContracts": [ - 3809, - 4281 - ], - "name": "ShifterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev The symbol is included twice because strings have to be hashed\n first in order to be used as a log index/topic.", - "id": 3337, - "name": "LogShifterRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3329, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "472:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3328, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3331, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "488:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3330, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "488:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3333, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "519:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "519:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3335, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3337, - "src": "550:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3334, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "550:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:111:10" - }, - "src": "445:138:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3347, - "name": "LogShifterDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3346, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3339, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "617:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3338, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "617:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3341, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "633:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3340, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "633:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3343, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "664:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3342, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "664:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3345, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3347, - "src": "695:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:111:10" - }, - "src": "588:140:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3355, - "name": "LogShifterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 3354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3349, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "757:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3351, - "indexed": true, - "name": "_currentShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "788:38:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3353, - "indexed": true, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3355, - "src": "828:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "756:107:10" - }, - "src": "733:131:10" - }, - { - "constant": false, - "id": 3358, - "name": "numShifters", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "920:23:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "920:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 3357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3360, - "name": "shifterList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "994:35:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3359, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "994:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3362, - "name": "shiftedTokenList", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1086:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3361, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4654, - "src": "1086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3366, - "name": "shifterByToken", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1205:49:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3365, - "keyType": { - "id": 3363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1205:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3364, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1223:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3370, - "name": "tokenBySymbol", - "nodeType": "VariableDeclaration", - "scope": 3809, - "src": "1331:47:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "typeName": { - "id": 3369, - "keyType": { - "id": 3367, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "1331:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "valueType": { - "id": 3368, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1348:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 3456, - "nodeType": "Block", - "src": "1741:842:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1839:50:10", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3382, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "1860:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3383, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "1873:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3380, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "1840:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isInList", - "nodeType": "MemberAccess", - "referencedDeclaration": 4981, - "src": "1840:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (bool)" - } - }, - "id": 3384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:49:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7368696674657220616c72656164792072656769737465726564", - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1891:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - }, - "value": "shifter already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - } - ], - "id": 3379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1831:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3388, - "nodeType": "ExpressionStatement", - "src": "1831:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3390, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "1938:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3392, - "indexExpression": { - "argumentTypes": null, - "id": 3391, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "1953:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1938:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1971:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3395, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1971:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1938:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 3397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 3389, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "1930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1930:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3399, - "nodeType": "ExpressionStatement", - "src": "1930:82:10" - }, - { - "assignments": [ - 3401 - ], - "declarations": [ - { - "constant": false, - "id": 3401, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3456, - "src": "2022:20:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3400, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2022:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3407, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3403, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2058:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3402, - "name": "ERC20Shifted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "2045:12:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Shifted_$2864_$", - "typeString": "type(contract ERC20Shifted)" - } - }, - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:27:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7947, - "src": "2045:34:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 3406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:36:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3409, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2099:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3411, - "indexExpression": { - "argumentTypes": null, - "id": 3410, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2113:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3413, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2132:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3412, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2099:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c20616c72656164792072656769737465726564", - "id": 3416, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2138:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - }, - "value": "symbol already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - } - ], - "id": 3408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "2091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:75:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3418, - "nodeType": "ExpressionStatement", - "src": "2091:75:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3422, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "2230:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3423, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2243:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3419, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2212:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2212:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3425, - "nodeType": "ExpressionStatement", - "src": "2212:47:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3429, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "2329:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3430, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2347:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3426, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "2311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "2311:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2311:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "2311:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3433, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2372:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3435, - "indexExpression": { - "argumentTypes": null, - "id": 3434, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2386:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2372:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3436, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2396:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2372:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3438, - "nodeType": "ExpressionStatement", - "src": "2372:37:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3439, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "2419:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3441, - "indexExpression": { - "argumentTypes": null, - "id": 3440, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2434:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3442, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2451:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2419:47:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3444, - "nodeType": "ExpressionStatement", - "src": "2419:47:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3445, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "2476:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2491:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2476:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3448, - "nodeType": "ExpressionStatement", - "src": "2476:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3450, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2529:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3451, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3401, - "src": "2537:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3452, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3372, - "src": "2545:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3453, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3374, - "src": "2560:15:10", - "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_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3449, - "name": "LogShifterRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3337, - "src": "2508:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2508:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3455, - "nodeType": "EmitStatement", - "src": "2503:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to set the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _shifterAddress The address of the Shifter contract.", - "id": 3457, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3377, - "modifierName": { - "argumentTypes": null, - "id": 3376, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "1731:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1731:9:10" - } - ], - "name": "setShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3372, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1674:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3374, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3457, - "src": "1697:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3373, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1697:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:48:10" - }, - "returnParameters": { - "id": 3378, - "nodeType": "ParameterList", - "parameters": [], - "src": "1741:0:10" - }, - "scope": 3809, - "src": "1654:929:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3509, - "nodeType": "Block", - "src": "2965:553:10", - "statements": [ - { - "assignments": [ - 3467 - ], - "declarations": [ - { - "constant": false, - "id": 3467, - "name": "currentShifter", - "nodeType": "VariableDeclaration", - "scope": 3509, - "src": "3027:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3027:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3471, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3468, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3052:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3470, - "indexExpression": { - "argumentTypes": null, - "id": 3469, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3067:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3027:54:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3473, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3099:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3475, - "indexExpression": { - "argumentTypes": null, - "id": 3474, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3114:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3099:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3132:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3478, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3132:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3099:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3146:22:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 3472, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3482, - "nodeType": "ExpressionStatement", - "src": "3091:78:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3486, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3236:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3487, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3249:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3483, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3218:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "3218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3218:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3489, - "nodeType": "ExpressionStatement", - "src": "3218:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3493, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "3334:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3494, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3347:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3490, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "3316:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4925, - "src": "3316:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3316:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3496, - "nodeType": "ExpressionStatement", - "src": "3316:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3497, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "3377:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3499, - "indexExpression": { - "argumentTypes": null, - "id": 3498, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3392:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3377:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3500, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3409:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3377:50:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3502, - "nodeType": "ExpressionStatement", - "src": "3377:50:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3504, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3459, - "src": "3461:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3505, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3467, - "src": "3476:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3506, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3461, - "src": "3492:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3503, - "name": "LogShifterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3355, - "src": "3443:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 3507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3443:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3508, - "nodeType": "EmitStatement", - "src": "3438:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to update the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _newShifterAddress The updated address of the Shifter contract.", - "id": 3510, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3464, - "modifierName": { - "argumentTypes": null, - "id": 3463, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "2955:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2955:9:10" - } - ], - "name": "updateShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3462, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3459, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2895:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3458, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2895:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3461, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3510, - "src": "2918:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3460, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2894:51:10" - }, - "returnParameters": { - "id": 3465, - "nodeType": "ParameterList", - "parameters": [], - "src": "2965:0:10" - }, - "scope": 3809, - "src": "2872:646:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3579, - "nodeType": "Block", - "src": "3781:630:10", - "statements": [ - { - "assignments": [ - 3518 - ], - "declarations": [ - { - "constant": false, - "id": 3518, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3824:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3522, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3519, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "3847:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3521, - "indexExpression": { - "argumentTypes": null, - "id": 3520, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "3861:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3847:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3824:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3524, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "3887:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3911:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3887:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c206e6f742072656769737465726564", - "id": 3529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:23:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - }, - "value": "symbol not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - } - ], - "id": 3523, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3879:62:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3531, - "nodeType": "ExpressionStatement", - "src": "3879:62:10" - }, - { - "assignments": [ - 3533 - ], - "declarations": [ - { - "constant": false, - "id": 3533, - "name": "shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3579, - "src": "3987:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3532, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3987:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3537, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3534, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4012:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3536, - "indexExpression": { - "argumentTypes": null, - "id": 3535, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4027:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3987:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3538, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "4087:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3540, - "indexExpression": { - "argumentTypes": null, - "id": 3539, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4087:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4126:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4087:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3545, - "nodeType": "ExpressionStatement", - "src": "4087:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3546, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "4140:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3548, - "indexExpression": { - "argumentTypes": null, - "id": 3547, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4140:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4165:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4140:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3553, - "nodeType": "ExpressionStatement", - "src": "4140:37:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3557, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4205:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3558, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4218:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3554, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4187:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4187:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4187:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3560, - "nodeType": "ExpressionStatement", - "src": "4187:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3564, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "4261:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3565, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4279:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3561, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4243:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4893, - "src": "4243:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4243:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3567, - "nodeType": "ExpressionStatement", - "src": "4243:49:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3568, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4302:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4302:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3571, - "nodeType": "ExpressionStatement", - "src": "4302:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3573, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4357:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3574, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3512, - "src": "4366:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3575, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3518, - "src": "4375:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3576, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3533, - "src": "4389:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3572, - "name": "LogShifterDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3347, - "src": "4334:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4334:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3578, - "nodeType": "EmitStatement", - "src": "4329:75:10" - } - ] - }, - "documentation": "@notice Allows the owner to remove the shifter address for a given\n ERC20shifter token contract.\n\n /// @param _symbol The symbol of the token to deregister.", - "id": 3580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3515, - "modifierName": { - "argumentTypes": null, - "id": 3514, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "3771:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3771:9:10" - } - ], - "name": "removeShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3513, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3512, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3580, - "src": "3737:23:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3511, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3737:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:25:10" - }, - "returnParameters": { - "id": 3516, - "nodeType": "ParameterList", - "parameters": [], - "src": "3781:0:10" - }, - "scope": 3809, - "src": "3714:697:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3672, - "nodeType": "Block", - "src": "4574:648:10", - "statements": [ - { - "assignments": [ - 3591 - ], - "declarations": [ - { - "constant": false, - "id": 3591, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4584:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3590, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3592, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4584:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3593, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4611:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3605, - "nodeType": "Block", - "src": "4674:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3601, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4688:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3602, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3584, - "src": "4696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4688:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "4688:14:10" - } - ] - }, - "id": 3606, - "nodeType": "IfStatement", - "src": "4607:106:10", - "trueBody": { - "id": 3600, - "nodeType": "Block", - "src": "4624:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3596, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3597, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "4646:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4638:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3599, - "nodeType": "ExpressionStatement", - "src": "4638:19:10" - } - ] - } - }, - { - "assignments": [ - 3610 - ], - "declarations": [ - { - "constant": false, - "id": 3610, - "name": "shifters", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4723:25:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3609, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4723:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3616, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3614, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4765:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3613, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4751:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3611, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3612, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4755:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4723:48:10" - }, - { - "assignments": [ - 3618 - ], - "declarations": [ - { - "constant": false, - "id": 3618, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4831:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3617, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3620, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4843:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:13:10" - }, - { - "assignments": [ - 3622 - ], - "declarations": [ - { - "constant": false, - "id": 3622, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3672, - "src": "4854:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3621, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4854:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3624, - "initialValue": { - "argumentTypes": null, - "id": 3623, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3582, - "src": "4869:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4854:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3625, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4889:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4897:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4889:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3638, - "nodeType": "IfStatement", - "src": "4885:85:10", - "trueBody": { - "id": 3637, - "nodeType": "Block", - "src": "4909:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "4923:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3633, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "4947:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3631, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "4930:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "4930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4923:36:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3636, - "nodeType": "ExpressionStatement", - "src": "4923:36:10" - } - ] - } - }, - { - "body": { - "id": 3668, - "nodeType": "Block", - "src": "4998:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3642, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5016:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5032:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5024:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3649, - "nodeType": "IfStatement", - "src": "5012:62:10", - "trueBody": { - "id": 3648, - "nodeType": "Block", - "src": "5036:38:10", - "statements": [ - { - "id": 3647, - "nodeType": "Break", - "src": "5054:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3650, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5087:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3652, - "indexExpression": { - "argumentTypes": null, - "id": 3651, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5096:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5087:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3653, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5101:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5087:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3655, - "nodeType": "ExpressionStatement", - "src": "5087:18:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3656, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5119:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3659, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3360, - "src": "5142:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3660, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3622, - "src": "5155:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3657, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5126:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3663, - "nodeType": "ExpressionStatement", - "src": "5119:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3666, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3664, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "5174:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5179:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5174:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3667, - "nodeType": "ExpressionStatement", - "src": "5174:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3639, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3618, - "src": "4987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3640, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3591, - "src": "4991:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4987:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3669, - "nodeType": "WhileStatement", - "src": "4980:211:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3670, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3610, - "src": "5207:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3589, - "id": 3671, - "nodeType": "Return", - "src": "5200:15:10" - } - ] - }, - "documentation": "@dev To get all the registered shifters use count = 0.", - "id": 3673, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3585, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3582, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4501:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3581, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4501:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3584, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4517:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3583, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4500:32:10" - }, - "returnParameters": { - "id": 3589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3588, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3673, - "src": "4556:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4556:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3587, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4556:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4555:18:10" - }, - "scope": 3809, - "src": "4480:742:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3765, - "nodeType": "Block", - "src": "5396:673:10", - "statements": [ - { - "assignments": [ - 3684 - ], - "declarations": [ - { - "constant": false, - "id": 3684, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5406:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3685, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5406:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3686, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5433:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5443:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5433:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3698, - "nodeType": "Block", - "src": "5496:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3696, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3694, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5510:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3695, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3677, - "src": "5518:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5510:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3697, - "nodeType": "ExpressionStatement", - "src": "5510:14:10" - } - ] - }, - "id": 3699, - "nodeType": "IfStatement", - "src": "5429:106:10", - "trueBody": { - "id": 3693, - "nodeType": "Block", - "src": "5446:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3689, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5460:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3690, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3358, - "src": "5468:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5460:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3692, - "nodeType": "ExpressionStatement", - "src": "5460:19:10" - } - ] - } - }, - { - "assignments": [ - 3703 - ], - "declarations": [ - { - "constant": false, - "id": 3703, - "name": "shiftedTokens", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5545:30:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3702, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5545:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3709, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3707, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5592:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5578:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5582:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3705, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5582:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3708, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5578:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5545:53:10" - }, - { - "assignments": [ - 3711 - ], - "declarations": [ - { - "constant": false, - "id": 3711, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5658:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3710, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3713, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5670:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5658:13:10" - }, - { - "assignments": [ - 3715 - ], - "declarations": [ - { - "constant": false, - "id": 3715, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3765, - "src": "5681:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3714, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3717, - "initialValue": { - "argumentTypes": null, - "id": 3716, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3675, - "src": "5696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5681:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3718, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5716:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5732:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5724:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5716:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3731, - "nodeType": "IfStatement", - "src": "5712:90:10", - "trueBody": { - "id": 3730, - "nodeType": "Block", - "src": "5736:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3723, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5750:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3726, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5774:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3724, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 4995, - "src": "5757:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5757:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5750:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3729, - "nodeType": "ExpressionStatement", - "src": "5750:41:10" - } - ] - } - }, - { - "body": { - "id": 3761, - "nodeType": "Block", - "src": "5830:203:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3735, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5848:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5864:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3736, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5856:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5848:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3742, - "nodeType": "IfStatement", - "src": "5844:62:10", - "trueBody": { - "id": 3741, - "nodeType": "Block", - "src": "5868:38:10", - "statements": [ - { - "id": 3740, - "nodeType": "Break", - "src": "5886:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3743, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "5919:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3745, - "indexExpression": { - "argumentTypes": null, - "id": 3744, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5933:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5919:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3746, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5938:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5919:23:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3748, - "nodeType": "ExpressionStatement", - "src": "5919:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3749, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5956:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3752, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3362, - "src": "5979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3753, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3715, - "src": "5997:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4654_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3750, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5058, - "src": "5963:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5058_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5033, - "src": "5963:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4654_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5956:46:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3756, - "nodeType": "ExpressionStatement", - "src": "5956:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3757, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "6016:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6021:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6016:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3760, - "nodeType": "ExpressionStatement", - "src": "6016:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3734, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3732, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3711, - "src": "5819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3733, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3684, - "src": "5823:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5819:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3762, - "nodeType": "WhileStatement", - "src": "5812:221:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3763, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3703, - "src": "6049:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3682, - "id": 3764, - "nodeType": "Return", - "src": "6042:20:10" - } - ] - }, - "documentation": "@dev To get all the registered shifted tokens use count = 0.", - "id": 3766, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShiftedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3675, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5323:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3674, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3677, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5339:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5322:32:10" - }, - "returnParameters": { - "id": 3682, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3681, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3766, - "src": "5378:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3679, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5378:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3680, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5378:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5377:18:10" - }, - "scope": 3809, - "src": "5297:772:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3779, - "nodeType": "Block", - "src": "6354:63:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3774, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6380:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3776, - "indexExpression": { - "argumentTypes": null, - "id": 3775, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3768, - "src": "6395:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6380:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3773, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6371:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6371:39:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3772, - "id": 3778, - "nodeType": "Return", - "src": "6364:46:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n contract address.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.", - "id": 3780, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterByToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3769, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3768, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6298:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6298:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6297:23:10" - }, - "returnParameters": { - "id": 3772, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3771, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3780, - "src": "6344:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3770, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6344:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:10:10" - }, - "scope": 3809, - "src": "6271:146:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3795, - "nodeType": "Block", - "src": "6698:77:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3788, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "6724:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3792, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3789, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "6739:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3791, - "indexExpression": { - "argumentTypes": null, - "id": 3790, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3782, - "src": "6753:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6739:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6724:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3787, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6715:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6715:53:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3786, - "id": 3794, - "nodeType": "Return", - "src": "6708:60:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.", - "id": 3796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3783, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3782, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6635:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3781, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6635:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6634:30:10" - }, - "returnParameters": { - "id": 3786, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3785, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3796, - "src": "6688:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3784, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6688:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6687:10:10" - }, - "scope": 3809, - "src": "6607:168:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3807, - "nodeType": "Block", - "src": "7054:51:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3803, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "7071:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3805, - "indexExpression": { - "argumentTypes": null, - "id": 3804, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3798, - "src": "7085:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7071:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3802, - "id": 3806, - "nodeType": "Return", - "src": "7064:34:10" - } - ] - }, - "documentation": "@notice Returns the ERC20Shifted address for the given token symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n lookup.", - "id": 3808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTokenBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3799, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3798, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "6992:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3797, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6992:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6991:30:10" - }, - "returnParameters": { - "id": 3802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3801, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3808, - "src": "7045:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7045:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7044:9:10" - }, - "scope": 3809, - "src": "6966:139:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3810, - "src": "268:6839:10" - } - ], - "src": "0:7107:10" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -13142,91 +420,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:47:45.112Z", - "devdoc": { - "methods": { - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "getShiftedTokens(address,uint256)": { - "details": "To get all the registered shifted tokens use count = 0." - }, - "getShifterBySymbol(string)": { - "params": { - "_tokenSymbol": "The symbol of the ERC20Shifted token contract." - } - }, - "getShifterByToken(address)": { - "params": { - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - }, - "getShifters(address,uint256)": { - "details": "To get all the registered shifters use count = 0." - }, - "getTokenBySymbol(string)": { - "params": { - "_tokenSymbol": "The symbol of the ERC20Shifted token contract to lookup." - } - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { - "return": "the address of the owner." - }, - "removeShifter(string)": { - "params": { - "_symbol": "The symbol of the token to deregister." - } - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "setShifter(address,address)": { - "params": { - "_shifterAddress": "The address of the Shifter contract.", - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - }, - "updateShifter(address,address)": { - "params": { - "_newShifterAddress": "The updated address of the Shifter contract.", - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - } - } - }, - "userdoc": { - "methods": { - "getShifterBySymbol(string)": { - "notice": "Returns the Shifter address for the given ERC20Shifted token symbol. " - }, - "getShifterByToken(address)": { - "notice": "Returns the Shifter address for the given ERC20Shifted token contract address. " - }, - "getTokenBySymbol(string)": { - "notice": "Returns the ERC20Shifted address for the given token symbol. " - }, - "removeShifter(string)": { - "notice": "Allows the owner to remove the shifter address for a given ERC20shifter token contract. " - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "setShifter(address,address)": { - "notice": "Allow the owner to set the shifter address for a given ERC20Shifted token contract. " - }, - "updateShifter(address,address)": { - "notice": "Allow the owner to update the shifter address for a given ERC20Shifted token contract. " - } - }, - "notice": "ShifterRegistry is a mapping from assets to their associated ERC20Shifted and Shifter contracts." - } + "updatedAt": "2019-07-16T00:47:45.112Z" } \ No newline at end of file diff --git a/build/localnet/ZECShifter.json b/build/localnet/ZECShifter.json index 6937520b..ed7f25e9 100644 --- a/build/localnet/ZECShifter.json +++ b/build/localnet/ZECShifter.json @@ -418,10933 +418,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_nextMintAuthority\",\"type\":\"address\"}],\"name\":\"updateMintAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextTokenOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFee\",\"type\":\"uint16\"}],\"name\":\"updateFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"}],\"name\":\"hashForSignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"status\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"shiftOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintAuthority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextShiftID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"shiftIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_signedMessageHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_feeRecipient\",\"type\":\"address\"},{\"name\":\"_mintAuthority\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"}],\"name\":\"LogShiftIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_indexedTo\",\"type\":\"bytes\"}],\"name\":\"LogShiftOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"params\":{\"_amount\":\"The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)\",\"_nHash\":\"(nonce hash) The hash of the nonce, amount and pHash.\",\"_pHash\":\"(payload hash) The hash of the payload associated with the shift.\",\"_sig\":\"The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\"}},\"shiftOut(bytes,uint256)\":{\"params\":{\"_amount\":\"The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)\",\"_to\":\"The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateFee(uint16)\":{\"params\":{\"_nextFee\":\"The new fee for minting and burning.\"}},\"updateFeeRecipient(address)\":{\"params\":{\"_nextFeeRecipient\":\"The address to start paying fees to.\"}},\"updateMintAuthority(address)\":{\"params\":{\"_nextMintAuthority\":\"The address to start paying fees to.\"}}}},\"userdoc\":{\"methods\":{\"claimTokenOwnership()\":{\"notice\":\"Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function.\"},\"hashForSignature(bytes32,uint256,address,bytes32)\":{\"notice\":\"hashForSignature hashes the parameters so that they can be signed.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"notice\":\"shiftIn mints tokens after taking a fee for the `_feeRecipient`. \"},\"shiftOut(bytes,uint256)\":{\"notice\":\"shiftOut burns tokens after taking a fee for the `_feeRecipient`. \"},\"transferTokenOwnership(address)\":{\"notice\":\"Allow the owner to update the owner of the ERC20Shifted token.\"},\"updateFee(uint16)\":{\"notice\":\"Allow the owner to update the fee. \"},\"updateFeeRecipient(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"updateMintAuthority(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"verifySignature(bytes32,bytes)\":{\"notice\":\"verifySignature checks the the provided signature matches the provided parameters.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":\"ZECShifter\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":{\"keccak256\":\"0xd80cfaf2e5adebbe3d12b5053be769787a5d3aac7a813d985de9aff2ae77046f\",\"urls\":[\"bzzr://241ffce5caac59f3015d47630239593349a700e43976d003256afea8363be7dd\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol\":{\"keccak256\":\"0x2466e251b3ab27d508ac2f0de523e03cfaf00b6c4f2e4fa382db28940f4bc8d8\",\"urls\":[\"bzzr://b80cf1a642065ce8b1172527564947598e8d1af6640f9dfcbf36040e701497fc\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x7b0d1ee8869ddd89976df0d781d16f24e49db9528fcc49c31b164b0d3c936bda\",\"urls\":[\"bzzr://dcd07ff226fff30843e7b28c069270451a9bd4a49809e78c42e17a23c52c72e4\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405260008054600160a01b60ff0219167402000000000000000000000000000000000000000017815560055534801561003a57600080fd5b5060405160808062001ad48339810180604052608081101561005b57600080fd5b5080516020820151604080840151606090940151600080546001600160a01b0319163317808255925194959394919286928692869286926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b038087166001600160a01b03199283161790925560028054928516929091169190911790556003805461ffff83167401000000000000000000000000000000000000000002600160a01b61ffff021990911617905561013583610142602090811b901c565b5050505050505050610263565b61015061025260201b60201c565b6101bb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661023057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331490565b61186180620002736000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a72305820854aa93272199cd842004f9de18d1944a7fa6960912145f595cabfec5051b0020029", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063daca6f7811610071578063daca6f78146103ee578063ddca3f431461049b578063f160d369146104ba578063f2fde38b146104e0578063fc0c546a146105065761012c565b80638da5cb5b146103155780638f32d59b1461031d5780639340b21e14610325578063ab595e0c1461032d578063bb4a1d8c146103355761012c565b80635219a566116100f45780635219a566146101cc57806352ad0d5e1461021657806354fd4d5014610247578063715018a6146102655780638723c3771461026d5761012c565b80630130a33b1461013157806310731a651461015957806321e6b53d146101615780632c6cda931461018757806346904840146101a8575b600080fd5b6101576004803603602081101561014757600080fd5b50356001600160a01b031661050e565b005b61015761057a565b6101576004803603602081101561017757600080fd5b50356001600160a01b03166105e4565b6101576004803603602081101561019d57600080fd5b503561ffff166106ed565b6101b061076a565b604080516001600160a01b039092168252519081900360200190f35b610204600480360360808110156101e257600080fd5b508035906020810135906001600160a01b036040820135169060600135610779565b60408051918252519081900360200190f35b6102336004803603602081101561022c57600080fd5b50356107c9565b604080519115158252519081900360200190f35b61024f6107de565b6040805160ff9092168252519081900360200190f35b6101576107ee565b6102046004803603604081101561028357600080fd5b81019060208101813564010000000081111561029e57600080fd5b8201836020820111156102b057600080fd5b803590602001918460018302840111640100000000831117156102d257600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505091359250610882915050565b6101b0610b1d565b610233610b2c565b6101b0610b3d565b610204610b4c565b6102046004803603608081101561034b57600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561037957600080fd5b82018360208201111561038b57600080fd5b803590602001918460018302840111640100000000831117156103ad57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610b52945050505050565b6102336004803603604081101561040457600080fd5b8135919081019060408101602082013564010000000081111561042657600080fd5b82018360208201111561043857600080fd5b8035906020019184600183028401116401000000008311171561045a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610e67945050505050565b6104a3610e8b565b6040805161ffff9092168252519081900360200190f35b610157600480360360208110156104d057600080fd5b50356001600160a01b0316610e9c565b610157600480360360208110156104f657600080fd5b50356001600160a01b0316610f66565b6101b0610fbc565b610516610b2c565b6105585760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b600160009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156105ca57600080fd5b505af11580156105de573d6000803e3d6000fd5b50505050565b6105ec610b2c565b61062e5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b60015460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b15801561067f57600080fd5b505af1158015610693573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106d257600080fd5b505af11580156106e6573d6000803e3d6000fd5b5050505050565b6106f5610b2c565b6107375760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6003805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6003546001600160a01b031681565b60015460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60046020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b6107f6610b2c565b6108385760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156108de5760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60035460009061090e9061271090610902908690600160a01b900461ffff16610fcb565b9063ffffffff61102e16565b60015460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b15801561096757600080fd5b505af115801561097b573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810187905290519190921693506340c10f199250604480830192600092919082900301818387803b1580156109da57600080fd5b505af11580156109ee573d6000803e3d6000fd5b505050506000610a07828561109b90919063ffffffff16565b9050846040518082805190602001908083835b60208310610a395780518252601f199092019160209182019101610a1a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206005547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610acf578181015183820152602001610ab7565b50505050905090810190601f168015610afc5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36005805460010190559150505b92915050565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6002546001600160a01b031681565b60055481565b600080610b6186863387610779565b60008181526004602052604090205490915060ff1615610bcb5760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610bd58184610e67565b610cdf57610c586040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610c1b836110fb565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610c53610c4e868961127c565b61140e565b611593565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ca4578181015183820152602001610c8c565b50505050905090810190601f168015610cd15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600460205260408120805460ff19166001179055600354610d20906127109061090290899061ffff600160a01b9091041663ffffffff610fcb16565b90506000610d34878363ffffffff61109b16565b60015460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610d8d57600080fd5b505af1158015610da1573d6000803e3d6000fd5b505060015460035460408051600160e01b6340c10f190281526001600160a01b0392831660048201526024810188905290519190921693506340c10f199250604480830192600092919082900301818387803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b50506005546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600580546001019055979650505050505050565b6000610e73838361127c565b6002546001600160a01b039182169116149392505050565b600354600160a01b900461ffff1681565b610ea4610b2c565b610ee65760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b6001600160a01b038116610f445760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b610f6e610b2c565b610fb05760408051600160e51b62461bcd02815260206004820181905260248201526000805160206117f3833981519152604482015290519081900360640190fd5b610fb9816116e4565b50565b6001546001600160a01b031681565b600082610fda57506000610b17565b82820282848281610fe757fe5b041461102757604051600160e51b62461bcd0281526004018080602001828103825260218152602001806117d26021913960400191505060405180910390fd5b9392505050565b60008082116110875760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161109257fe5b04949350505050565b6000828211156110f55760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061115e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061118a57fe5b60200101906001600160f81b031916908160001a90535060005b6020811015611273578260048583602081106111bc57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106111dc57fe5b602001015160f81c60f81b8282600202600201815181106111f957fe5b60200101906001600160f81b031916908160001a9053508284826020811061121d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061123757fe5b602001015160f81c60f81b82826002026003018151811061125457fe5b60200101906001600160f81b031916908160001a9053506001016111a4565b50949350505050565b600081516041146112d75760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561134b57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806118136023913960400191505060405180910390fd5b8060ff16601b1415801561136357508060ff16601c14155b156113a257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806117886024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113f9573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061147857fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f02816001815181106114a457fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611273578260048583600c01602081106114d957fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106114f957fe5b602001015160f81c60f81b82826002026002018151811061151657fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061153d57fe5b1a60f81b600f60f81b1660f81c60ff168151811061155757fe5b602001015160f81c60f81b82826002026003018151811061157457fe5b60200101906001600160f81b031916908160001a9053506001016114be565b6060848484846040516020018085805190602001908083835b602083106115cb5780518252601f1990920191602091820191016115ac565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116135780518252601f1990920191602091820191016115f4565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b6020831061165b5780518252601f19909201916020918201910161163c565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106116a35780518252601f199092019160209182019101611684565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661172c57604051600160e51b62461bcd0281526004018080602001828103825260268152602001806117ac6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a72305820854aa93272199cd842004f9de18d1944a7fa6960912145f595cabfec5051b0020029", - "sourceMap": "7819:211:9:-;;;552:24;;;-1:-1:-1;;;;;;552:24:9;;;;;1402:30;;7856:172;5:2:-1;;;;30:1;27;20:12;5:2;7856:172:9;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7856:172:9;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;7856:172:9;;;;;;;;;;;;;;-1:-1:-1;;;;;724:6:36;;;;;657;691:40;;657:6;;691:40;2108:5:9;:14;;-1:-1:-1;;;;;2108:14:9;;;-1:-1:-1;;;;;;2108:14:9;;;;;;;2132:13;:30;;;;;;;;;;;;;;;2172:3;:10;;;;;;;-1:-1:-1;;;;;;2172:10:9;;;;;;2192:33;2211:13;2192:18;;;;;:33;;:::i;:::-;1998:234;;;;7856:172;;;;7819:211;;3267:274;1018:9:36;:7;;;:9;;:::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1165:90:36:-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;7819:211:9:-;;;;;;;", - "deployedSourceMap": "7819:211:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7819:211:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2997:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2997:125:9;-1:-1:-1;;;;;2997:125:9;;:::i;:::-;;2502:77;;;:::i;2664:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2664:187:9;-1:-1:-1;;;;;2664:187:9;;:::i;3667:84::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3667:84:9;;;;:::i;1089:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1089:27:9;;;;;;;;;;;;;;7263:209;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7263:209:9;;;;;;;;-1:-1:-1;;;;;7263:209:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1250:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1250:37:9;;:::i;:::-;;;;;;;;;;;;;;;;;;552:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1599:137:36;;;:::i;6166:716:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6166:716:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6166:716:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6166:716:9;;;;;;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;6166:716:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9;;;-1:-1:-1;6166:716:9;;-1:-1:-1;;6166:716:9:i;814:77:36:-;;;:::i;1165:90::-;;;:::i;812:28:9:-;;;:::i;1402:30::-;;;:::i;4304:1383::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4304:1383:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4304:1383:9;;;;;;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;4304:1383:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4304:1383:9;;-1:-1:-1;4304:1383:9;;-1:-1:-1;;;;;4304:1383:9:i;6995:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6995:179:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6995:179:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6995:179:9;;;;;;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;6995:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6995:179:9;;-1:-1:-1;6995:179:9;;-1:-1:-1;;;;;6995:179:9:i;1176:17::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3267:274;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3267:274:9;-1:-1:-1;;;;;3267:274:9;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;703:25:9:-;;;:::i;2997:125::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3081:13:9;:34;;-1:-1:-1;;;;;;3081:34:9;-1:-1:-1;;;;;3081:34:9;;;;;;;;;;2997:125::o;2502:77::-;2550:5;;;;;;;;;-1:-1:-1;;;;;2550:5:9;-1:-1:-1;;;;;2550:20:9;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2550:22:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2550:22:9;;;;2502:77::o;2664:187::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;2748:5:9;;:49;;;-1:-1:-1;;;;;2748:49:9;;-1:-1:-1;;;;;2748:49:9;;;;;;;;;:5;;;;;:23;;:49;;;;;:5;;:49;;;;;;;:5;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;2748:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2748:49:9;;;;2807:15;-1:-1:-1;;;;;2807:35:9;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2807:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2807:37:9;;;;2664:187;:::o;3667:84::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3730:3:9;:14;;;;;;-1:-1:-1;;;3730:14:9;-1:-1:-1;;3730:14:9;;;;;;;;;3667:84::o;1089:27::-;;;-1:-1:-1;;;;;1089:27:9;;:::o;7263:209::-;7444:5;;7408:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7444:5:9;;;7408:56;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7408:56:9;;;;;;7398:67;;;;;;7263:209::o;1250:37::-;;;;;;;;;;;;;;;:::o;552:24::-;;;-1:-1:-1;;;552:24:9;;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;6166:716:9:-;6235:7;6409:3;:10;6423:1;6409:15;;6401:47;;;;;-1:-1:-1;;;;;6401:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6535:3;;6500:19;;6522:40;;619:5;;6523:16;;:7;;-1:-1:-1;;;6535:3:9;;;;6523:11;:16::i;:::-;6522:22;:40;:22;:40;:::i;:::-;6572:5;;:31;;;-1:-1:-1;;;;;6572:31:9;;6583:10;6572:31;;;;;;;;;;;;6500:62;;-1:-1:-1;;;;;;6572:5:9;;;;:10;;:31;;;;;:5;;:31;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;6572:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6613:5:9;;6624:12;;6613:37;;;-1:-1:-1;;;;;6613:37:9;;-1:-1:-1;;;;;6624:12:9;;;6613:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;6613:10:9;;-1:-1:-1;6613:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;6613:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6613:37:9;;;;6706:21;6730:24;6742:11;6730:7;:11;;:24;;;;:::i;:::-;6706:48;;6814:3;6769:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;6769:49:9;;;;;;;;;;;;;;;;6801:11;;6769:49;6781:3;6786:13;6769:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6769:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6828:11;:16;;6843:1;6828:16;;;6862:13;-1:-1:-1;;6166:716:9;;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;812:28:9:-;;;-1:-1:-1;;;;;812:28:9;;:::o;1402:30::-;;;;:::o;4304:1383::-;4405:7;4452:25;4480:53;4497:6;4505:7;4514:10;4526:6;4480:16;:53::i;:::-;4551:25;;;;:6;:25;;;;;;4452:81;;-1:-1:-1;4551:25:9;;:34;4543:71;;;;;-1:-1:-1;;;;;4543:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;4629:40;4645:17;4664:4;4629:15;:40::i;:::-;4624:539;;4886:252;;;;;;;;;;;;;;;;;;4969:37;4988:17;4969:18;:37::i;:::-;4886:252;;;;;;;;;;;;;-1:-1:-1;;;;;4886:252:9;;;5062:58;5081:38;5095:17;5114:4;5081:13;:38::i;:::-;5062:18;:58::i;:::-;4886:11;:252::i;:::-;4862:290;;-1:-1:-1;;;;;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4862:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:539;5172:25;;;;:6;:25;;;;;:32;;-1:-1:-1;;5172:32:9;5200:4;5172:32;;;5329:3;;5316:40;;619:5;;5317:16;;:7;;5329:3;-1:-1:-1;;;5329:3:9;;;;5317:16;:11;:16;:::i;5316:40::-;5294:62;-1:-1:-1;5366:22:9;5391:24;:7;5294:62;5391:24;:11;:24;:::i;:::-;5425:5;;:38;;;-1:-1:-1;;;;;5425:38:9;;5436:10;5425:38;;;;;;;;;;;;5366:49;;-1:-1:-1;;;;;;5425:5:9;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5425:38:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5473:5:9;;5484:12;;5473:37;;;-1:-1:-1;;;;;5473:37:9;;-1:-1:-1;;;;;5484:12:9;;;5473:37;;;;;;;;;;;;:5;;;;;-1:-1:-1;5473:10:9;;-1:-1:-1;5473:37:9;;;;;:5;;:37;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;5473:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5610:11:9;;5571:51;;;;;;;;5610:11;;-1:-1:-1;5582:10:9;;-1:-1:-1;5571:51:9;;;;;;;;;;5632:11;:16;;5647:1;5632:16;;;5666:14;4304:1383;-1:-1:-1;;;;;;;4304:1383:9:o;6995:179::-;7088:4;7128:39;7142:18;7162:4;7128:13;:39::i;:::-;7111:13;;-1:-1:-1;;;;;7111:56:9;;;:13;;:56;;6995:179;-1:-1:-1;;;6995:179:9:o;1176:17::-;;;-1:-1:-1;;;1176:17:9;;;;;:::o;3267:274::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;3426:33:9;;3418:73;;;;;-1:-1:-1;;;;;3418:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3502:12;:32;;-1:-1:-1;;;;;;3502:32:9;-1:-1:-1;;;;;3502:32:9;;;;;;;;;;3267:274::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;703:25:9:-;;;-1:-1:-1;;;;;703:25:9;;:::o;1693:458:35:-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:35;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;;;2069:56:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:35:o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;120:484:17:-;254:42;;;;;;;;;;;-1:-1:-1;;;;;254:42:17;;;;326:21;;336:10;326:21;;;;;;;;;179:13;;236:6;;254:42;179:13;;326:21;;;21:6:-1;;104:10;326:21:17;87:34:-1;135:17;;-1:-1;326:21:17;307:40;;-1:-1:-1;;;;;357:3:17;361:1;357:6;;;;;;;;;;;:12;-1:-1:-1;;;;;357:12:17;;;;;;;;;-1:-1:-1;;;;;379:3:17;383:1;379:6;;;;;;;;;;;:12;-1:-1:-1;;;;;379:12:17;;;;;;;;-1:-1:-1;406:6:17;401:169;422:2;418:1;:6;401:169;;;458:8;490:1;478:5;484:1;478:8;;;;;;;;;;-1:-1:-1;;;;;478:13:17;;;;472:20;;467:26;;458:36;;;;;;;;;;;;;;;;445:3;451:1;453;451:3;449:1;:5;445:10;;;;;;;;;;;:49;-1:-1:-1;;;;;445:49:17;;;;;;;;;521:8;541:5;547:1;541:8;;;;;;;;;;552:4;541:15;;;535:22;;530:28;;521:38;;;;;;;;;;;;;;;;508:3;514:1;516;514:3;512:1;:5;508:10;;;;;;;;;;;:51;-1:-1:-1;;;;;508:51:17;;;;;;;;-1:-1:-1;426:3:17;;401:169;;;-1:-1:-1;593:3:17;120:484;-1:-1:-1;;;;120:484:17:o;1229:1968:32:-;1307:7;1368:9;:16;1388:2;1368:22;1364:92;;1406:39;;;-1:-1:-1;;;;;1406:39:32;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:92;1806:4;1791:20;;1785:27;1851:4;1836:20;;1830:27;1904:4;1889:20;;1883:27;1522:9;1875:36;2822:66;2809:79;;2805:155;;;2904:45;;-1:-1:-1;;;;;2904:45:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:155;2974:1;:7;;2979:2;2974:7;;:18;;;;;2985:1;:7;;2990:2;2985:7;;2974:18;2970:95;;;3008:46;;-1:-1:-1;;;;;3008:46:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:95;3166:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3166:24:32;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3166:24:32;;-1:-1:-1;;3166:24:32;;;1229:1968;-1:-1:-1;;;;;;;1229:1968:32:o;678:492:17:-;810:42;;;;;;;;;;;-1:-1:-1;;;;;810:42:17;;;;882:21;;892:10;882:21;;;736:13;882:21;;;;;;-1:-1:-1;;;;;785:14:17;;;810:42;736:13;;882:21;;;21:6:-1;;104:10;882:21:17;87:34:-1;135:17;;-1:-1;882:21:17;863:40;;-1:-1:-1;;;;;913:3:17;917:1;913:6;;;;;;;;;;;:12;-1:-1:-1;;;;;913:12:17;;;;;;;;;-1:-1:-1;;;;;935:3:17;939:1;935:6;;;;;;;;;;;:12;-1:-1:-1;;;;;935:12:17;;;;;;;;-1:-1:-1;962:6:17;957:179;978:2;974:1;:6;957:179;;;1014:8;1051:1;1034:5;1040:1;1044:2;1040:6;1034:13;;;;;;;;;;-1:-1:-1;;;;;1034:18:17;;;;1028:25;;1023:31;;1014:41;;;;;;;;;;;;;;;;1001:3;1007:1;1009;1007:3;1005:1;:5;1001:10;;;;;;;;;;;:54;-1:-1:-1;;;;;1001:54:17;;;;;;;;;1082:8;1102:5;1108:1;1112:2;1108:6;1102:13;;;;;;;;;;1118:4;1102:20;;;1096:27;;1091:33;;1082:43;;;;;;;;;;;;;;;;1069:3;1075:1;1077;1075:3;1073:1;:5;1069:10;;;;;;;;;;;:56;-1:-1:-1;;;;;1069:56:17;;;;;;;;-1:-1:-1;982:3:17;;957:179;;1212:180;1317:13;1373:1;1376;1379;1382;1356:28;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1356:28:17;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1356:28:17;;;1342:43;;1212:180;;;;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"../libraries/String.sol\";\nimport \"./ERC20Shifted.sol\";\n\n/// @notice Shifter handles verifying mint and burn requests. A mintAuthority\n/// approves new assets to be minted by providing a digital signature. An owner\n/// of an asset can request for it to be burnt.\ncontract Shifter is Ownable {\n using SafeMath for uint256;\n\n uint8 public version = 2;\n\n uint256 constant BIPS_DENOMINATOR = 10000;\n\n /// @notice Each Shifter token is tied to a specific shifted token.\n ERC20Shifted public token;\n\n /// @notice The mintAuthority is an address that can sign mint requests.\n address public mintAuthority;\n\n /// @dev feeRecipient is assumed to be an address (or a contract) that can \n /// accept erc20 payments it cannot be 0x0.\n /// @notice When tokens are mint or burnt, a portion of the tokens are \n /// forwarded to a fee recipient.\n address public feeRecipient;\n\n /// @notice The minting and burning fee in bips.\n uint16 public fee;\n\n /// @notice Each nHash can only be seen once.\n mapping (bytes32=>bool) public status;\n\n // LogShiftIn and LogShiftOut contain a unique `shiftID` that identifies\n // the mint or burn event.\n uint256 public nextShiftID = 0;\n\n event LogShiftIn(address indexed _to, uint256 _amount, uint256 indexed _shiftID);\n event LogShiftOut(bytes _to, uint256 _amount, uint256 indexed _shiftID, bytes indexed _indexedTo);\n\n /// @param _token The ERC20Shifted this Shifter is responsible for.\n /// @param _feeRecipient The recipient of burning and minting fees.\n /// @param _mintAuthority The address of the key that can sign mint\n /// requests.\n /// @param _fee The amount subtracted each burn and mint request and\n /// forwarded to the feeRecipient. In BIPS.\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee) public {\n token = _token;\n mintAuthority = _mintAuthority;\n fee = _fee;\n updateFeeRecipient(_feeRecipient);\n }\n\n // Public functions ////////////////////////////////////////////////////////\n\n /// @notice Claims ownership of the token passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called.\n /// Anyone can call this function.\n function claimTokenOwnership() public {\n token.claimOwnership();\n }\n\n /// @notice Allow the owner to update the owner of the ERC20Shifted token.\n function transferTokenOwnership(Shifter _nextTokenOwner) public onlyOwner {\n token.transferOwnership(address(_nextTokenOwner));\n _nextTokenOwner.claimTokenOwnership();\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextMintAuthority The address to start paying fees to.\n function updateMintAuthority(address _nextMintAuthority) public onlyOwner {\n mintAuthority = _nextMintAuthority;\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextFeeRecipient The address to start paying fees to.\n function updateFeeRecipient(address _nextFeeRecipient) public onlyOwner {\n // ShiftIn and ShiftOut will fail if the feeRecipient is 0x0\n require(_nextFeeRecipient != address(0x0), \"fee recipient cannot be 0x0\");\n\n feeRecipient = _nextFeeRecipient;\n }\n\n /// @notice Allow the owner to update the fee.\n ///\n /// @param _nextFee The new fee for minting and burning.\n function updateFee(uint16 _nextFee) public onlyOwner {\n fee = _nextFee;\n }\n\n /// @notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _pHash (payload hash) The hash of the payload associated with the\n /// shift.\n /// @param _amount The amount of the token being shifted int, in its\n /// smallest value. (e.g. satoshis for BTC)\n /// @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n /// @param _sig The signature of the hash of the following values:\n /// (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\n function shiftIn(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes memory _sig) public returns (uint256) {\n // Verify signature\n bytes32 signedMessageHash = hashForSignature(_pHash, _amount, msg.sender, _nHash);\n require(status[signedMessageHash] == false, \"nonce hash already spent\");\n if (!verifySignature(signedMessageHash, _sig)) {\n // Return a detailed string containing the hash and recovered\n // signer. This is a costly operation but is only run in the revert\n // branch.\n revert(\n String.add4(\n \"invalid signature - hash: \",\n String.fromBytes32(signedMessageHash),\n \", signer: \",\n String.fromAddress(ECDSA.recover(signedMessageHash, _sig))\n )\n );\n }\n status[signedMessageHash] = true;\n\n // Mint `amount - fee` for the recipient and mint `fee` for the minter\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n uint256 receivedAmount = _amount.sub(absoluteFee);\n token.mint(msg.sender, receivedAmount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n emit LogShiftIn(msg.sender, receivedAmount, nextShiftID);\n nextShiftID += 1;\n\n return receivedAmount;\n }\n\n /// @notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _to The address to receive the unshifted digital asset. The\n /// format of this address should be of the destination chain.\n /// For example, when shifting out to Bitcoin, _to should be a\n /// Bitcoin address.\n /// @param _amount The amount of the token being shifted out, in its\n /// smallest value. (e.g. satoshis for BTC)\n function shiftOut(bytes memory _to, uint256 _amount) public returns (uint256) {\n // The recipient must not be empty. Better validation is possible,\n // but would need to be customized for each destination ledger.\n require(_to.length != 0, \"to address is empty\");\n\n // Burn full amount and mint fee\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n token.burn(msg.sender, _amount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n uint256 receivedValue = _amount.sub(absoluteFee);\n emit LogShiftOut(_to, receivedValue, nextShiftID, _to);\n nextShiftID += 1;\n\n return receivedValue;\n }\n\n /// @notice verifySignature checks the the provided signature matches the provided\n /// parameters.\n function verifySignature(bytes32 _signedMessageHash, bytes memory _sig) public view returns (bool) {\n return mintAuthority == ECDSA.recover(_signedMessageHash, _sig);\n }\n\n /// @notice hashForSignature hashes the parameters so that they can be signed.\n function hashForSignature(bytes32 _pHash, uint256 _amount, address _to, bytes32 _nHash) public view returns (bytes32) {\n return keccak256(abi.encode(_pHash, _amount, address(token), _to, _nHash));\n }\n}\n\n/// @dev The following are not necessary for deploying BTCShifter or ZECShifter\n/// contracts, but are used to track deployments.\ncontract BTCShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}\n\ncontract ZECShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee) public {\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3298 - ], - "Shifter": [ - 3277 - ], - "ZECShifter": [ - 3319 - ] - }, - "id": 3320, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7360, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7471, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 7073, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 5288, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3320, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7470, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7470", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7470 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3277, - "linearizedBaseContracts": [ - 3277, - 7470 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7359, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7359", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "703:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2920, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "703:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "812:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "812:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1089:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1089:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1176:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2926, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1176:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2931, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1250:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2930, - "keyType": { - "id": 2928, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1259:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1250:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2929, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1268:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2934, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3277, - "src": "1402:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2932, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2933, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1431:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2942, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2941, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2936, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1456:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1456:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2938, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1477:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1477:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2942, - "src": "1494:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1494:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1455:64:9" - }, - "src": "1439:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2952, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2951, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2944, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1543:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2943, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1543:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1554:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2945, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1554:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1571:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1571:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2952, - "src": "1597:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2949, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1597:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1542:80:9" - }, - "src": "1525:98:9" - }, - { - "body": { - "id": 2979, - "nodeType": "Block", - "src": "2098:134:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2963, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2108:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2964, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "2116:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2108:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2966, - "nodeType": "ExpressionStatement", - "src": "2108:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2132:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2148:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2132:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2132:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "2172:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2178:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2172:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2172:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2976, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2211:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2975, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3043, - "src": "2192:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2192:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2192:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2980, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2961, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2954, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2010:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2953, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2010:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2956, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2031:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2031:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2054:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2054:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2980, - "src": "2078:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2959, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2078:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2009:81:9" - }, - "returnParameters": { - "id": 2962, - "nodeType": "ParameterList", - "parameters": [], - "src": "2098:0:9" - }, - "scope": 3277, - "src": "1998:234:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2988, - "nodeType": "Block", - "src": "2540:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2983, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2550:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4280, - "src": "2550:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2550:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2987, - "nodeType": "ExpressionStatement", - "src": "2550:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2989, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2981, - "nodeType": "ParameterList", - "parameters": [], - "src": "2530:2:9" - }, - "returnParameters": { - "id": 2982, - "nodeType": "ParameterList", - "parameters": [], - "src": "2540:0:9" - }, - "scope": 3277, - "src": "2502:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3009, - "nodeType": "Block", - "src": "2738:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3000, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2780:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - ], - "id": 2999, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2772:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2996, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2748:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4259, - "src": "2748:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2748:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3003, - "nodeType": "ExpressionStatement", - "src": "2748:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2991, - "src": "2807:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2989, - "src": "2807:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2807:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3008, - "nodeType": "ExpressionStatement", - "src": "2807:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3010, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2994, - "modifierName": { - "argumentTypes": null, - "id": 2993, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "2728:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2728:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2992, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2991, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3010, - "src": "2696:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2990, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "2696:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2695:25:9" - }, - "returnParameters": { - "id": 2995, - "nodeType": "ParameterList", - "parameters": [], - "src": "2738:0:9" - }, - "scope": 3277, - "src": "2664:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3021, - "nodeType": "Block", - "src": "3071:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3019, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3017, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "3081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3018, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3012, - "src": "3097:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3081:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3020, - "nodeType": "ExpressionStatement", - "src": "3081:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3022, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3015, - "modifierName": { - "argumentTypes": null, - "id": 3014, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3061:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3061:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3013, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3012, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3022, - "src": "3026:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3011, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3026:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3025:28:9" - }, - "returnParameters": { - "id": 3016, - "nodeType": "ParameterList", - "parameters": [], - "src": "3071:0:9" - }, - "scope": 3277, - "src": "2997:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3042, - "nodeType": "Block", - "src": "3339:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3030, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3426:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3455:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3447:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3447:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3426:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3461:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3029, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "3418:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3418:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3037, - "nodeType": "ExpressionStatement", - "src": "3418:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3502:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3039, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3024, - "src": "3517:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3502:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3041, - "nodeType": "ExpressionStatement", - "src": "3502:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3043, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3027, - "modifierName": { - "argumentTypes": null, - "id": 3026, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3329:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3329:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3024, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3043, - "src": "3295:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3023, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3295:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3294:27:9" - }, - "returnParameters": { - "id": 3028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3339:0:9" - }, - "scope": 3277, - "src": "3267:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3054, - "nodeType": "Block", - "src": "3720:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3050, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3730:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3051, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3045, - "src": "3736:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "3730:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3053, - "nodeType": "ExpressionStatement", - "src": "3730:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3055, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3048, - "modifierName": { - "argumentTypes": null, - "id": 3047, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7403, - "src": "3710:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3710:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3046, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3045, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3055, - "src": "3686:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3044, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "3686:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3685:17:9" - }, - "returnParameters": { - "id": 3049, - "nodeType": "ParameterList", - "parameters": [], - "src": "3720:0:9" - }, - "scope": 3277, - "src": "3667:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3166, - "nodeType": "Block", - "src": "4414:1273:9", - "statements": [ - { - "assignments": [ - 3069 - ], - "declarations": [ - { - "constant": false, - "id": 3069, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "4452:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3068, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4452:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3077, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3071, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3057, - "src": "4497:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3072, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "4505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3073, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "4514:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3074, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4514:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3075, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3061, - "src": "4526:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3070, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "4480:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4480:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4452:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3079, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "4551:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3081, - "indexExpression": { - "argumentTypes": null, - "id": 3080, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4558:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4551:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3082, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4580:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4551:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4587:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3078, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "4543:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3086, - "nodeType": "ExpressionStatement", - "src": "4543:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3091, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4628:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3088, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4645:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3089, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "4664:4:9", - "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": 3087, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3249, - "src": "4629:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4629:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3113, - "nodeType": "IfStatement", - "src": "4624:539:9", - "trueBody": { - "id": 3112, - "nodeType": "Block", - "src": "4671:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4919:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3098, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "4988:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3096, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4969:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5159, - "src": "4969:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4969:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5028:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3105, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5095:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3106, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "5114:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3103, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "5081:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "5081:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5081:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3101, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "5062:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5262, - "src": "5062:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5062:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5287, - "src": "4886:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5287_$", - "typeString": "type(library String)" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5286, - "src": "4886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4886:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3092, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8166, - 8167 - ], - "referencedDeclaration": 8167, - "src": "4862:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4862:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3111, - "nodeType": "ExpressionStatement", - "src": "4862:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3114, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2931, - "src": "5172:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3115, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "5179:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5172:25:9", - "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": "5200:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5172:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "5172:32:9" - }, - { - "assignments": [ - 3121 - ], - "declarations": [ - { - "constant": false, - "id": 3121, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5294:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3120, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5294:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3130, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3128, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5339:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3124, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5329:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3122, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5317:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "5317:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5317:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3126, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5316:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "5316:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5316:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5294:62:9" - }, - { - "assignments": [ - 3132 - ], - "declarations": [ - { - "constant": false, - "id": 3132, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3166, - "src": "5366:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3131, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5366:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3137, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3135, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5403:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3133, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3059, - "src": "5391:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "5391:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5391:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5366:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3141, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5436:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5436:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3143, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5448:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3138, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5425:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5425:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5425:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3145, - "nodeType": "ExpressionStatement", - "src": "5425:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3149, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "5484:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3150, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3121, - "src": "5498:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3146, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "5473:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5473:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5473:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3152, - "nodeType": "ExpressionStatement", - "src": "5473:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3154, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "5582:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5582:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3156, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5594:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3157, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5610:11:9", - "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": 3153, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "5571:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5571:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3159, - "nodeType": "EmitStatement", - "src": "5566:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3160, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "5632:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3161, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5647:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5632:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3163, - "nodeType": "ExpressionStatement", - "src": "5632:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3164, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3132, - "src": "5666:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3067, - "id": 3165, - "nodeType": "Return", - "src": "5659:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3167, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3064, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3057, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4321:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3056, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4321:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3059, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4337:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3058, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4337:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3061, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3060, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3063, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4370:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3062, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4370:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4320:68:9" - }, - "returnParameters": { - "id": 3067, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3066, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3167, - "src": "4405:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3065, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4405:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4404:9:9" - }, - "scope": 3277, - "src": "4304:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3230, - "nodeType": "Block", - "src": "6244:638:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3177, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6409:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6409:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6423:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6409:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6426:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3176, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8164, - 8165 - ], - "referencedDeclaration": 8165, - "src": "6401:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6401:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6401:47:9" - }, - { - "assignments": [ - 3185 - ], - "declarations": [ - { - "constant": false, - "id": 3185, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6500:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3184, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6500:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3194, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3192, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "6545:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3188, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "6535:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3186, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6523:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3187, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7312, - "src": "6523:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6523:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3190, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "6522:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7337, - "src": "6522:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6522:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6500:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "6583:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6583:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3200, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6595:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3195, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "6572:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3202, - "nodeType": "ExpressionStatement", - "src": "6572:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3206, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "6624:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3207, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6638:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3203, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6613:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "6613:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6613:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3209, - "nodeType": "ExpressionStatement", - "src": "6613:37:9" - }, - { - "assignments": [ - 3211 - ], - "declarations": [ - { - "constant": false, - "id": 3211, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3230, - "src": "6706:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3210, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6706:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3216, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3214, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "6742:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3212, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3171, - "src": "6730:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7278, - "src": "6730:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6730:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6706:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3218, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6781:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3219, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6786:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3220, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6801:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3221, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "6814:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3217, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2952, - "src": "6769:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6769:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3223, - "nodeType": "EmitStatement", - "src": "6764:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3224, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2934, - "src": "6828:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3225, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6843:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6828:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "6828:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3228, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3211, - "src": "6862:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3175, - "id": 3229, - "nodeType": "Return", - "src": "6855:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3169, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6184:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3168, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6184:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3171, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6202:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3170, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6202:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6183:35:9" - }, - "returnParameters": { - "id": 3175, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3174, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3231, - "src": "6235:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3173, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6235:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6234:9:9" - }, - "scope": 3277, - "src": "6166:716:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3248, - "nodeType": "Block", - "src": "7094:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3246, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3240, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7111:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3243, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3233, - "src": "7142:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3244, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3235, - "src": "7162:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3241, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7072, - "src": "7128:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7072_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7055, - "src": "7128:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7128:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7111:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3239, - "id": 3247, - "nodeType": "Return", - "src": "7104:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3249, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3233, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7020:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3232, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7020:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3235, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7048:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3234, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7048:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:47:9" - }, - "returnParameters": { - "id": 3239, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3238, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3249, - "src": "7088:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3237, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7088:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7087:6:9" - }, - "scope": 3277, - "src": "6995:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7381:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3265, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3251, - "src": "7419:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3266, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3253, - "src": "7427:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3268, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "7444:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3267, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7436:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7436:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3270, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3255, - "src": "7452:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3257, - "src": "7457:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3263, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8148, - "src": "7408:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7408:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7408:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3262, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "7398:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7398:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3261, - "id": 3274, - "nodeType": "Return", - "src": "7391:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3258, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3251, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7289:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3250, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7289:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3253, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7305:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3252, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7305:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3255, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7322:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3254, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7322:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3257, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7335:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3256, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7335:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7288:62:9" - }, - "returnParameters": { - "id": 3261, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7372:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7372:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7371:9:9" - }, - "scope": 3277, - "src": "7263:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "485:6989:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3278, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7629:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3279, - "nodeType": "InheritanceSpecifier", - "src": "7629:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3298, - "linearizedBaseContracts": [ - 3298, - 3277, - 7470 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3296, - "nodeType": "Block", - "src": "7804:11:9", - "statements": [] - }, - "documentation": null, - "id": 3297, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3290, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3281, - "src": "7752:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3291, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3283, - "src": "7760:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3292, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3285, - "src": "7775:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3287, - "src": "7791:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3294, - "modifierName": { - "argumentTypes": null, - "id": 3289, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7744:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7744:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3281, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7655:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3280, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7655:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3283, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7676:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7676:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3285, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7699:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7699:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3287, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3297, - "src": "7723:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3286, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7723:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7654:81:9" - }, - "returnParameters": { - "id": 3295, - "nodeType": "ParameterList", - "parameters": [], - "src": "7804:0:9" - }, - "scope": 3298, - "src": "7643:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7606:211:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3299, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3277, - "src": "7842:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3277", - "typeString": "contract Shifter" - } - }, - "id": 3300, - "nodeType": "InheritanceSpecifier", - "src": "7842:7:9" - } - ], - "contractDependencies": [ - 3277, - 7470 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3319, - "linearizedBaseContracts": [ - 3319, - 3277, - 7470 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3317, - "nodeType": "Block", - "src": "8017:11:9", - "statements": [] - }, - "documentation": null, - "id": 3318, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3311, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3302, - "src": "7965:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3312, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "7973:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3313, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3306, - "src": "7988:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3314, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8004:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "id": 3315, - "modifierName": { - "argumentTypes": null, - "id": 3310, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3277, - "src": "7957:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3277_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7957:52:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3309, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3302, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7868:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3301, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "7868:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3304, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7889:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3303, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7889:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3306, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7912:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3305, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7912:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3308, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3318, - "src": "7936:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3307, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "7936:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7867:81:9" - }, - "returnParameters": { - "id": 3316, - "nodeType": "ParameterList", - "parameters": [], - "src": "8017:0:9" - }, - "scope": 3319, - "src": "7856:172:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3320, - "src": "7819:211:9" - } - ], - "src": "0:8030:9" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -11428,81 +502,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:47:45.129Z", - "devdoc": { - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "params": { - "_amount": "The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)", - "_nHash": "(nonce hash) The hash of the nonce, amount and pHash.", - "_pHash": "(payload hash) The hash of the payload associated with the shift.", - "_sig": "The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority." - } - }, - "shiftOut(bytes,uint256)": { - "params": { - "_amount": "The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)", - "_to": "The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address." - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "updateFee(uint16)": { - "params": { - "_nextFee": "The new fee for minting and burning." - } - }, - "updateFeeRecipient(address)": { - "params": { - "_nextFeeRecipient": "The address to start paying fees to." - } - }, - "updateMintAuthority(address)": { - "params": { - "_nextMintAuthority": "The address to start paying fees to." - } - } - } - }, - "userdoc": { - "methods": { - "claimTokenOwnership()": { - "notice": "Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function." - }, - "hashForSignature(bytes32,uint256,address,bytes32)": { - "notice": "hashForSignature hashes the parameters so that they can be signed." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "notice": "shiftIn mints tokens after taking a fee for the `_feeRecipient`. " - }, - "shiftOut(bytes,uint256)": { - "notice": "shiftOut burns tokens after taking a fee for the `_feeRecipient`. " - }, - "transferTokenOwnership(address)": { - "notice": "Allow the owner to update the owner of the ERC20Shifted token." - }, - "updateFee(uint16)": { - "notice": "Allow the owner to update the fee. " - }, - "updateFeeRecipient(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "updateMintAuthority(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "verifySignature(bytes32,bytes)": { - "notice": "verifySignature checks the the provided signature matches the provided parameters." - } - } - } + "updatedAt": "2019-07-16T00:47:45.129Z" } \ No newline at end of file diff --git a/build/localnet/zBTC.json b/build/localnet/zBTC.json index 63d16a6a..dc966ce2 100644 --- a/build/localnet/zBTC.json +++ b/build/localnet/zBTC.json @@ -376,1759 +376,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"_from\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"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\":\"The following are not necessary for deploying zBTC or zZEC contracts, but are used to track deployments.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":\"zBTC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x600b60808181527f536869667465642042544300000000000000000000000000000000000000000060a0908152610100604052600460c09081527f7a4254430000000000000000000000000000000000000000000000000000000060e0529192600891849184918491610074916003916100f4565b5081516100889060049060208501906100f4565b506005805460ff90921660ff199092169190911790555050600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505061018f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013557805160ff1916838001178555610162565b82800160010185558215610162579182015b82811115610162578251825591602001919060010190610147565b5061016e929150610172565b5090565b61018c91905b8082111561016e5760008155600101610178565b90565b610e978061019e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200936e35597cd3598468078c9b4611bc295a148e92ab21f78e3f6b82205f2362a0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200936e35597cd3598468078c9b4611bc295a148e92ab21f78e3f6b82205f2362a0029", - "sourceMap": "511:123:7:-;1014:58;511:123;;;;;;;;;1014:58;511:123;;;;;;;;;1014:58;;1067:1;;1014:58;;511:123;;1067:1;;504:12:39;;:5;;:12;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;;;;;-1:-1:-1;;552:20:39;;;;;;;;;-1:-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;-1:-1:-1;;;;;595:6:13;;;;;552:9:39;;562:40:13;;552:9:39;;562:40:13;511:123:7;;;1014:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1014:58:7;;;-1:-1:-1;1014:58:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "1014:58:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1014:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:37;;;;;;;;;;;;;;;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3702:203:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:37;;;;;;;;:::i;747:97:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;747:97:7;;;;;;;;:::i;:::-;;2166:177:13;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1688:137:13:-;;;:::i;672:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;;:::i;838:85:39:-;;;:::i;640:101:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;640:101:7;;;;;;;;:::i;4392:213:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:37;;;;;;;;:::i;1972:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:37;;;;;;;;:::i;2183:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;3702:203:37:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;747:97:7:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;818:19:7;824:3;829:7;818:5;:19::i;:::-;747:97;;:::o;2166:177:13:-;1091:13;;;;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;2250:6;;2229:43;;2258:13;;;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;2229:43;;2250:6;;2229:43;2289:13;;;2280:6;:22;;-1:-1:-1;;;;;;2280:22:13;-1:-1:-1;;;;;2289:13:13;;;;2280:22;;;-1:-1:-1;;;;;;2310:26:13;;;2166:177::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;;;;;;;;;;1661:108::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;838:85:39:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;640:101:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;713:21:7;719:5;726:7;713:5;:21::i;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;2045:24:13;;;;;-1:-1:-1;;;;;;2045:24:13;;;;;;;;;1975:101::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;-1:-1:-1;;;;;5838:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;;6584:9;;6649:36;;;;;;;;;;;6392:300;;:::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\nimport \"../libraries/Claimable.sol\";\n\n/// @notice ERC20Shifted represents a digital asset that has been bridged on to\n/// the Ethereum ledger. It exposes mint and burn functions that can only be\n/// called by it's associated Shifter.\ncontract ERC20Shifted is ERC20, ERC20Detailed, Claimable {\n\n /* solium-disable-next-line no-empty-blocks */\n constructor(string memory _name, string memory _symbol, uint8 _decimals) public ERC20Detailed(_name, _symbol, _decimals) {}\n\n function burn(address _from, uint256 _amount) public onlyOwner {\n _burn(_from, _amount);\n }\n\n function mint(address _to, uint256 _amount) public onlyOwner {\n _mint(_to, _amount);\n }\n}\n\n/// @dev The following are not necessary for deploying zBTC or zZEC contracts,\n/// but are used to track deployments.\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zBTC is ERC20Shifted(\"Shifted BTC\", \"zBTC\", 8) {}\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zZEC is ERC20Shifted(\"Shifted ZEC\", \"zZEC\", 8) {}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2207,68 +455,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:47:45.125Z", - "devdoc": { - "details": "The following are not necessary for deploying zBTC or zZEC contracts, but are used to track deployments.", - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } + "updatedAt": "2019-07-16T00:47:45.125Z" } \ No newline at end of file diff --git a/build/localnet/zZEC.json b/build/localnet/zZEC.json index 74d42ae8..dd14785d 100644 --- a/build/localnet/zZEC.json +++ b/build/localnet/zZEC.json @@ -376,1759 +376,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"_from\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"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\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":\"zZEC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x600b60808181527f53686966746564205a454300000000000000000000000000000000000000000060a0908152610100604052600460c09081527f7a5a45430000000000000000000000000000000000000000000000000000000060e0529192600891849184918491610074916003916100f4565b5081516100889060049060208501906100f4565b506005805460ff90921660ff199092169190911790555050600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505061018f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013557805160ff1916838001178555610162565b82800160010185558215610162579182015b82811115610162578251825591602001919060010190610147565b5061016e929150610172565b5090565b61018c91905b8082111561016e5760008155600101610178565b90565b610e978061019e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820912683b49a012bea331fd46fb732eb99158a49d9e9f5426f9f39204351b3ec2a0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820912683b49a012bea331fd46fb732eb99158a49d9e9f5426f9f39204351b3ec2a0029", - "sourceMap": "511:123:7:-;1121:58;511:123;;;;;;;;;1121:58;511:123;;;;;;;;;1121:58;;1174:1;;1121:58;;511:123;;1174:1;;504:12:39;;:5;;:12;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;;;;;-1:-1:-1;;552:20:39;;;;;;;;;-1:-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;-1:-1:-1;;;;;595:6:13;;;;;552:9:39;;562:40:13;;552:9:39;;562:40:13;511:123:7;;;1121:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1121:58:7;;;-1:-1:-1;1121:58:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "1121:58:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1121:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:37;;;;;;;;;;;;;;;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3702:203:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:37;;;;;;;;:::i;747:97:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;747:97:7;;;;;;;;:::i;:::-;;2166:177:13;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1688:137:13:-;;;:::i;672:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;;:::i;838:85:39:-;;;:::i;640:101:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;640:101:7;;;;;;;;:::i;4392:213:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:37;;;;;;;;:::i;1972:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:37;;;;;;;;:::i;2183:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;3702:203:37:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;747:97:7:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;818:19:7;824:3;829:7;818:5;:19::i;:::-;747:97;;:::o;2166:177:13:-;1091:13;;;;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;2250:6;;2229:43;;2258:13;;;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;2229:43;;2250:6;;2229:43;2289:13;;;2280:6;:22;;-1:-1:-1;;;;;;2280:22:13;-1:-1:-1;;;;;2289:13:13;;;;2280:22;;;-1:-1:-1;;;;;;2310:26:13;;;2166:177::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;;;;;;;;;;1661:108::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;838:85:39:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;640:101:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;713:21:7;719:5;726:7;713:5;:21::i;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;2045:24:13;;;;;-1:-1:-1;;;;;;2045:24:13;;;;;;;;;1975:101::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;-1:-1:-1;;;;;5838:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;;6584:9;;6649:36;;;;;;;;;;;6392:300;;:::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\nimport \"../libraries/Claimable.sol\";\n\n/// @notice ERC20Shifted represents a digital asset that has been bridged on to\n/// the Ethereum ledger. It exposes mint and burn functions that can only be\n/// called by it's associated Shifter.\ncontract ERC20Shifted is ERC20, ERC20Detailed, Claimable {\n\n /* solium-disable-next-line no-empty-blocks */\n constructor(string memory _name, string memory _symbol, uint8 _decimals) public ERC20Detailed(_name, _symbol, _decimals) {}\n\n function burn(address _from, uint256 _amount) public onlyOwner {\n _burn(_from, _amount);\n }\n\n function mint(address _to, uint256 _amount) public onlyOwner {\n _mint(_to, _amount);\n }\n}\n\n/// @dev The following are not necessary for deploying zBTC or zZEC contracts,\n/// but are used to track deployments.\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zBTC is ERC20Shifted(\"Shifted BTC\", \"zBTC\", 8) {}\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zZEC is ERC20Shifted(\"Shifted ZEC\", \"zZEC\", 8) {}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7868, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7957, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4282, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7867, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7867", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7956, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7956", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4281, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4281", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7956, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7956_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7753, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4205, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4281, - 7867, - 7956, - 8127 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4281, - 7956, - 7867, - 8127 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2207,67 +455,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-07-16T00:47:45.133Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } + "updatedAt": "2019-07-16T00:47:45.133Z" } \ No newline at end of file diff --git a/build/testnet/BTCShifter.json b/build/testnet/BTCShifter.json index c27606f5..df8649eb 100644 --- a/build/testnet/BTCShifter.json +++ b/build/testnet/BTCShifter.json @@ -450,11759 +450,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_nextMintAuthority\",\"type\":\"address\"}],\"name\":\"updateMintAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextTokenOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFee\",\"type\":\"uint16\"}],\"name\":\"updateFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"}],\"name\":\"hashForSignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"status\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"shiftOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minShiftAmount\",\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintAuthority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextShiftID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"shiftIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_signedMessageHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_minShiftOutAmount\",\"type\":\"uint256\"}],\"name\":\"updateMinimumShiftOutAmount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_feeRecipient\",\"type\":\"address\"},{\"name\":\"_mintAuthority\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint16\"},{\"name\":\"_minShiftOutAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"}],\"name\":\"LogShiftIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_indexedTo\",\"type\":\"bytes\"}],\"name\":\"LogShiftOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"The following are not necessary for deploying BTCShifter or ZECShifter contracts, but are used to track deployments.\",\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"params\":{\"_amount\":\"The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)\",\"_nHash\":\"(nonce hash) The hash of the nonce, amount and pHash.\",\"_pHash\":\"(payload hash) The hash of the payload associated with the shift.\",\"_sig\":\"The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\"}},\"shiftOut(bytes,uint256)\":{\"params\":{\"_amount\":\"The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)\",\"_to\":\"The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateFee(uint16)\":{\"params\":{\"_nextFee\":\"The new fee for minting and burning.\"}},\"updateFeeRecipient(address)\":{\"params\":{\"_nextFeeRecipient\":\"The address to start paying fees to.\"}},\"updateMinimumShiftOutAmount(uint256)\":{\"params\":{\"_minShiftOutAmount\":\"The new min shiftOut amount.\"}},\"updateMintAuthority(address)\":{\"params\":{\"_nextMintAuthority\":\"The address to start paying fees to.\"}}}},\"userdoc\":{\"methods\":{\"claimTokenOwnership()\":{\"notice\":\"Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function.\"},\"hashForSignature(bytes32,uint256,address,bytes32)\":{\"notice\":\"hashForSignature hashes the parameters so that they can be signed.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"notice\":\"shiftIn mints tokens after taking a fee for the `_feeRecipient`. \"},\"shiftOut(bytes,uint256)\":{\"notice\":\"shiftOut burns tokens after taking a fee for the `_feeRecipient`. \"},\"transferTokenOwnership(address)\":{\"notice\":\"Allow the owner to update the owner of the ERC20Shifted token.\"},\"updateFee(uint16)\":{\"notice\":\"Allow the owner to update the fee. \"},\"updateFeeRecipient(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"updateMinimumShiftOutAmount(uint256)\":{\"notice\":\"Allow the owner to update the minimum shiftOut amount. \"},\"updateMintAuthority(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"verifySignature(bytes32,bytes)\":{\"notice\":\"verifySignature checks the the provided signature matches the provided parameters.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":\"BTCShifter\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":{\"keccak256\":\"0x8097e68ae333d2cc76defb76a28056bb53e243163472e372632e5557fb1a6a8a\",\"urls\":[\"bzzr://5b1e3a1bfd5c67de687303fec57de914359ffd97bfc890eb98dde52b0b6feda8\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol\":{\"keccak256\":\"0x2466e251b3ab27d508ac2f0de523e03cfaf00b6c4f2e4fa382db28940f4bc8d8\",\"urls\":[\"bzzr://b80cf1a642065ce8b1172527564947598e8d1af6640f9dfcbf36040e701497fc\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x7b0d1ee8869ddd89976df0d781d16f24e49db9528fcc49c31b164b0d3c936bda\",\"urls\":[\"bzzr://dcd07ff226fff30843e7b28c069270451a9bd4a49809e78c42e17a23c52c72e4\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405260008054600160a01b60ff0219167402000000000000000000000000000000000000000017815560065534801561003a57600080fd5b5060405160a08062001be9833981018060405260a081101561005b57600080fd5b50805160208201516040808401516060850151608090950151600080546001600160a01b03191633178082559351959694959294939192879287928792879287926001600160a01b0391909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001819055600280546001600160a01b038088166001600160a01b03199283161790925560038054928616929091169190911790556004805461ffff84167401000000000000000000000000000000000000000002600160a01b61ffff021990911617905561014384610152602090811b901c565b50505050505050505050610273565b61016061026260201b60201c565b6101cb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661024057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331490565b61196680620002836000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063daca6f781161007c578063daca6f781461040c578063ddca3f43146104b9578063e58732a7146104d8578063f160d369146104f5578063f2fde38b1461051b578063fc0c546a1461054157610142565b80638da5cb5b146103335780638f32d59b1461033b5780639340b21e14610343578063ab595e0c1461034b578063bb4a1d8c1461035357610142565b80635219a5661161010a5780635219a566146101e257806352ad0d5e1461022c57806354fd4d501461025d578063715018a61461027b5780638723c3771461028357806387c0b8811461032b57610142565b80630130a33b1461014757806310731a651461016f57806321e6b53d146101775780632c6cda931461019d57806346904840146101be575b600080fd5b61016d6004803603602081101561015d57600080fd5b50356001600160a01b0316610549565b005b61016d6105b5565b61016d6004803603602081101561018d57600080fd5b50356001600160a01b031661061f565b61016d600480360360208110156101b357600080fd5b503561ffff16610728565b6101c66107a5565b604080516001600160a01b039092168252519081900360200190f35b61021a600480360360808110156101f857600080fd5b508035906020810135906001600160a01b0360408201351690606001356107b4565b60408051918252519081900360200190f35b6102496004803603602081101561024257600080fd5b5035610804565b604080519115158252519081900360200190f35b610265610819565b6040805160ff9092168252519081900360200190f35b61016d610829565b61021a6004803603604081101561029957600080fd5b8101906020810181356401000000008111156102b457600080fd5b8201836020820111156102c657600080fd5b803590602001918460018302840111640100000000831117156102e857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506108bd915050565b61021a610b9d565b6101c6610ba3565b610249610bb2565b6101c6610bc3565b61021a610bd2565b61021a6004803603608081101561036957600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd8945050505050565b6102496004803603604081101561042257600080fd5b8135919081019060408101602082013564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610eee945050505050565b6104c1610f12565b6040805161ffff9092168252519081900360200190f35b61016d600480360360208110156104ee57600080fd5b5035610f23565b61016d6004803603602081101561050b57600080fd5b50356001600160a01b0316610f72565b61016d6004803603602081101561053157600080fd5b50356001600160a01b031661103c565b6101c6611092565b610551610bb2565b6105935760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060557600080fd5b505af1158015610619573d6000803e3d6000fd5b50505050565b610627610bb2565b6106695760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b60025460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b5050505050565b610730610bb2565b6107725760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6004805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6004546001600160a01b031681565b60025460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60056020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b610831610bb2565b6108735760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156109195760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60015482101561095d57604051600160e51b62461bcd02815260040180806020018281038252602f8152602001806118a8602f913960400191505060405180910390fd5b60045460009061098d9061271090610981908690600160a01b900461ffff166110a1565b9063ffffffff61110416565b60025460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830187905251921693506340c10f19925060448082019260009290919082900301818387803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050506000610a87828561117190919063ffffffff16565b9050846040518082805190602001908083835b60208310610ab95780518252601f199092019160209182019101610a9a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610b4f578181015183820152602001610b37565b50505050905090810190601f168015610b7c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36006805460010190559150505b92915050565b60015481565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6003546001600160a01b031681565b60065481565b600080610be7868633876107b4565b60008181526005602052604090205490915060ff1615610c515760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610c5b8184610eee565b610d6557610cde6040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610ca1836111d1565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610cd9610cd48689611352565b6114e4565b611669565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d2a578181015183820152602001610d12565b50505050905090810190601f168015610d575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600560205260408120805460ff19166001179055600454610da6906127109061098190899061ffff600160a01b9091041663ffffffff6110a116565b90506000610dba878363ffffffff61117116565b60025460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830188905251921693506340c10f19925060448082019260009290919082900301818387803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b50506006546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600680546001019055979650505050505050565b6000610efa8383611352565b6003546001600160a01b039182169116149392505050565b600454600160a01b900461ffff1681565b610f2b610bb2565b610f6d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600155565b610f7a610bb2565b610fbc5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6001600160a01b03811661101a5760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b611044610bb2565b6110865760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b61108f816117ba565b50565b6002546001600160a01b031681565b6000826110b057506000610b97565b828202828482816110bd57fe5b04146110fd57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806118d76021913960400191505060405180910390fd5b9392505050565b600080821161115d5760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161116857fe5b04949350505050565b6000828211156111cb5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061123457fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061126057fe5b60200101906001600160f81b031916908160001a90535060005b60208110156113495782600485836020811061129257fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106112b257fe5b602001015160f81c60f81b8282600202600201815181106112cf57fe5b60200101906001600160f81b031916908160001a905350828482602081106112f357fe5b1a60f81b600f60f81b1660f81c60ff168151811061130d57fe5b602001015160f81c60f81b82826002026003018151811061132a57fe5b60200101906001600160f81b031916908160001a90535060010161127a565b50949350505050565b600081516041146113ad5760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806119186023913960400191505060405180910390fd5b8060ff16601b1415801561143957508060ff16601c14155b1561147857604051600160e51b62461bcd02815260040180806020018281038252602481526020018061185e6024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156114cf573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061154e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061157a57fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611349578260048583600c01602081106115af57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106115cf57fe5b602001015160f81c60f81b8282600202600201815181106115ec57fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061161357fe5b1a60f81b600f60f81b1660f81c60ff168151811061162d57fe5b602001015160f81c60f81b82826002026003018151811061164a57fe5b60200101906001600160f81b031916908160001a905350600101611594565b6060848484846040516020018085805190602001908083835b602083106116a15780518252601f199092019160209182019101611682565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116e95780518252601f1990920191602091820191016116ca565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106117315780518252601f199092019160209182019101611712565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106117795780518252601f19909201916020918201910161175a565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661180257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806118826026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a723058204cbf987829fdac2b9bbddc49cc1502d072203f302509803d0025f3744331cba90029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063daca6f781161007c578063daca6f781461040c578063ddca3f43146104b9578063e58732a7146104d8578063f160d369146104f5578063f2fde38b1461051b578063fc0c546a1461054157610142565b80638da5cb5b146103335780638f32d59b1461033b5780639340b21e14610343578063ab595e0c1461034b578063bb4a1d8c1461035357610142565b80635219a5661161010a5780635219a566146101e257806352ad0d5e1461022c57806354fd4d501461025d578063715018a61461027b5780638723c3771461028357806387c0b8811461032b57610142565b80630130a33b1461014757806310731a651461016f57806321e6b53d146101775780632c6cda931461019d57806346904840146101be575b600080fd5b61016d6004803603602081101561015d57600080fd5b50356001600160a01b0316610549565b005b61016d6105b5565b61016d6004803603602081101561018d57600080fd5b50356001600160a01b031661061f565b61016d600480360360208110156101b357600080fd5b503561ffff16610728565b6101c66107a5565b604080516001600160a01b039092168252519081900360200190f35b61021a600480360360808110156101f857600080fd5b508035906020810135906001600160a01b0360408201351690606001356107b4565b60408051918252519081900360200190f35b6102496004803603602081101561024257600080fd5b5035610804565b604080519115158252519081900360200190f35b610265610819565b6040805160ff9092168252519081900360200190f35b61016d610829565b61021a6004803603604081101561029957600080fd5b8101906020810181356401000000008111156102b457600080fd5b8201836020820111156102c657600080fd5b803590602001918460018302840111640100000000831117156102e857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506108bd915050565b61021a610b9d565b6101c6610ba3565b610249610bb2565b6101c6610bc3565b61021a610bd2565b61021a6004803603608081101561036957600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd8945050505050565b6102496004803603604081101561042257600080fd5b8135919081019060408101602082013564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610eee945050505050565b6104c1610f12565b6040805161ffff9092168252519081900360200190f35b61016d600480360360208110156104ee57600080fd5b5035610f23565b61016d6004803603602081101561050b57600080fd5b50356001600160a01b0316610f72565b61016d6004803603602081101561053157600080fd5b50356001600160a01b031661103c565b6101c6611092565b610551610bb2565b6105935760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060557600080fd5b505af1158015610619573d6000803e3d6000fd5b50505050565b610627610bb2565b6106695760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b60025460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b5050505050565b610730610bb2565b6107725760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6004805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6004546001600160a01b031681565b60025460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60056020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b610831610bb2565b6108735760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156109195760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60015482101561095d57604051600160e51b62461bcd02815260040180806020018281038252602f8152602001806118a8602f913960400191505060405180910390fd5b60045460009061098d9061271090610981908690600160a01b900461ffff166110a1565b9063ffffffff61110416565b60025460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830187905251921693506340c10f19925060448082019260009290919082900301818387803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050506000610a87828561117190919063ffffffff16565b9050846040518082805190602001908083835b60208310610ab95780518252601f199092019160209182019101610a9a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610b4f578181015183820152602001610b37565b50505050905090810190601f168015610b7c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36006805460010190559150505b92915050565b60015481565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6003546001600160a01b031681565b60065481565b600080610be7868633876107b4565b60008181526005602052604090205490915060ff1615610c515760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610c5b8184610eee565b610d6557610cde6040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610ca1836111d1565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610cd9610cd48689611352565b6114e4565b611669565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d2a578181015183820152602001610d12565b50505050905090810190601f168015610d575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600560205260408120805460ff19166001179055600454610da6906127109061098190899061ffff600160a01b9091041663ffffffff6110a116565b90506000610dba878363ffffffff61117116565b60025460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830188905251921693506340c10f19925060448082019260009290919082900301818387803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b50506006546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600680546001019055979650505050505050565b6000610efa8383611352565b6003546001600160a01b039182169116149392505050565b600454600160a01b900461ffff1681565b610f2b610bb2565b610f6d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600155565b610f7a610bb2565b610fbc5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6001600160a01b03811661101a5760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b611044610bb2565b6110865760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b61108f816117ba565b50565b6002546001600160a01b031681565b6000826110b057506000610b97565b828202828482816110bd57fe5b04146110fd57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806118d76021913960400191505060405180910390fd5b9392505050565b600080821161115d5760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161116857fe5b04949350505050565b6000828211156111cb5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061123457fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061126057fe5b60200101906001600160f81b031916908160001a90535060005b60208110156113495782600485836020811061129257fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106112b257fe5b602001015160f81c60f81b8282600202600201815181106112cf57fe5b60200101906001600160f81b031916908160001a905350828482602081106112f357fe5b1a60f81b600f60f81b1660f81c60ff168151811061130d57fe5b602001015160f81c60f81b82826002026003018151811061132a57fe5b60200101906001600160f81b031916908160001a90535060010161127a565b50949350505050565b600081516041146113ad5760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806119186023913960400191505060405180910390fd5b8060ff16601b1415801561143957508060ff16601c14155b1561147857604051600160e51b62461bcd02815260040180806020018281038252602481526020018061185e6024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156114cf573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061154e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061157a57fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611349578260048583600c01602081106115af57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106115cf57fe5b602001015160f81c60f81b8282600202600201815181106115ec57fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061161357fe5b1a60f81b600f60f81b1660f81c60ff168151811061162d57fe5b602001015160f81c60f81b82826002026003018151811061164a57fe5b60200101906001600160f81b031916908160001a905350600101611594565b6060848484846040516020018085805190602001908083835b602083106116a15780518252601f199092019160209182019101611682565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116e95780518252601f1990920191602091820191016116ca565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106117315780518252601f199092019160209182019101611712565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106117795780518252601f19909201916020918201910161175a565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661180257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806118826026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a723058204cbf987829fdac2b9bbddc49cc1502d072203f302509803d0025f3744331cba90029", - "sourceMap": "8089:259:9:-;;;552:24;;;-1:-1:-1;;;;;;552:24:9;;;;;1435:30;;8126:220;5:2:-1;;;;30:1;27;20:12;5:2;8126:220:9;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;8126:220:9;;;;;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;8126:220:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;724:6:36;;;;;691:40;;657:6;;691:40;2169:14:9;:35;;;2214:5;:14;;-1:-1:-1;;;;;2214:14:9;;;-1:-1:-1;;;;;;2214:14:9;;;;;;;2238:13;:30;;;;;;;;;;;;;;;2278:3;:10;;;;;;;-1:-1:-1;;;;;;2278:10:9;;;;;;2298:33;2317:13;2298:18;;;;;:33;;:::i;:::-;2031:307;;;;;8126:220;;;;;8089:259;;3655:274;1018:9:36;:7;;;:9;;:::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3814:33:9;;3806:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3890:12;:32;;-1:-1:-1;;;;;;3890:32:9;-1:-1:-1;;;;;3890:32:9;;;;;;;;;;3655:274::o;1165:90:36:-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;8089:259:9:-;;;;;;;", - "deployedSourceMap": "8089:259:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8089:259:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3103:125:9;-1:-1:-1;;;;;3103:125:9;;:::i;:::-;;2608:77;;;:::i;2770:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2770:187:9;-1:-1:-1;;;;;2770:187:9;;:::i;4055:84::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4055:84:9;;;;:::i;1122:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1122:27:9;;;;;;;;;;;;;;7746:209;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7746:209:9;;;;;;;;-1:-1:-1;;;;;7746:209:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1283:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1283:37:9;;:::i;:::-;;;;;;;;;;;;;;;;;;552:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1599:137:36;;;:::i;6554:811:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6554:811:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6554:811:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6554:811:9;;;;;;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;6554:811:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6554:811:9;;-1:-1:-1;;6554:811:9;;;-1:-1:-1;6554:811:9;;-1:-1:-1;;6554:811:9:i;630:29::-;;;:::i;814:77:36:-;;;:::i;1165:90::-;;;:::i;847:28:9:-;;;:::i;1435:30::-;;;:::i;4692:1383::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4692:1383:9;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4692:1383:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4692:1383:9;;;;;;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;4692:1383:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4692:1383:9;;-1:-1:-1;4692:1383:9;;-1:-1:-1;;;;;4692:1383:9:i;7478:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7478:179:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7478:179:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7478:179:9;;;;;;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;7478:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7478:179:9;;-1:-1:-1;7478:179:9;;-1:-1:-1;;;;;7478:179:9:i;1209:17::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3376:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3376:134:9;;:::i;3655:274::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3655:274:9;-1:-1:-1;;;;;3655:274:9;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;738:25:9:-;;;:::i;3103:125::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3187:13:9;:34;;-1:-1:-1;;;;;;3187:34:9;-1:-1:-1;;;;;3187:34:9;;;;;;;;;;3103:125::o;2608:77::-;2656:5;;;;;;;;;-1:-1:-1;;;;;2656:5:9;-1:-1:-1;;;;;2656:20:9;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2656:22:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2656:22:9;;;;2608:77::o;2770:187::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;2854:5:9;;:49;;;-1:-1:-1;;;;;2854:49:9;;-1:-1:-1;;;;;2854:49:9;;;;;;;;;:5;;;;;:23;;:49;;;;;:5;;:49;;;;;;;:5;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;2854:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2854:49:9;;;;2913:15;-1:-1:-1;;;;;2913:35:9;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2913:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2913:37:9;;;;2770:187;:::o;4055:84::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;4118:3:9;:14;;;;;;-1:-1:-1;;;4118:14:9;-1:-1:-1;;4118:14:9;;;;;;;;;4055:84::o;1122:27::-;;;-1:-1:-1;;;;;1122:27:9;;:::o;7746:209::-;7927:5;;7891:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7927:5:9;;;7891:56;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7891:56:9;;;;;;7881:67;;;;;;7746:209::o;1283:37::-;;;;;;;;;;;;;;;:::o;552:24::-;;;-1:-1:-1;;;552:24:9;;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;6554:811:9:-;6623:7;6797:3;:10;6811:1;6797:15;;6789:47;;;;;-1:-1:-1;;;;;6789:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6865:14;;6854:7;:25;;6846:85;;;;-1:-1:-1;;;;;6846:85:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7018:3;;6983:19;;7005:40;;619:5;;7006:16;;:7;;-1:-1:-1;;;7018:3:9;;;;7006:11;:16::i;:::-;7005:22;:40;:22;:40;:::i;:::-;7055:5;;:31;;;-1:-1:-1;;;;;7055:31:9;;7066:10;7055:31;;;;;;;;;;;;6983:62;;-1:-1:-1;;;;;;7055:5:9;;;;:10;;:31;;;;;:5;;:31;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;7055:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7096:5:9;;7107:12;;;7096:37;;;-1:-1:-1;;;;;7096:37:9;;-1:-1:-1;;;;;7107:12:9;;;7096:37;;;;;;;;;;;;;;:5;;;-1:-1:-1;7096:10:9;;-1:-1:-1;7096:37:9;;;;;:5;;:37;;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;7096:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7096:37:9;;;;7189:21;7213:24;7225:11;7213:7;:11;;:24;;;;:::i;:::-;7189:48;;7297:3;7252:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7252:49:9;;;;;;;;;;;;;;;;7284:11;;7252:49;7264:3;7269:13;7252:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7252:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7311:11;:16;;7326:1;7311:16;;;7345:13;-1:-1:-1;;6554:811:9;;;;;:::o;630:29::-;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;847:28:9:-;;;-1:-1:-1;;;;;847:28:9;;:::o;1435:30::-;;;;:::o;4692:1383::-;4793:7;4840:25;4868:53;4885:6;4893:7;4902:10;4914:6;4868:16;:53::i;:::-;4939:25;;;;:6;:25;;;;;;4840:81;;-1:-1:-1;4939:25:9;;:34;4931:71;;;;;-1:-1:-1;;;;;4931:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:40;5033:17;5052:4;5017:15;:40::i;:::-;5012:539;;5274:252;;;;;;;;;;;;;;;;;;5357:37;5376:17;5357:18;:37::i;:::-;5274:252;;;;;;;;;;;;;-1:-1:-1;;;;;5274:252:9;;;5450:58;5469:38;5483:17;5502:4;5469:13;:38::i;:::-;5450:18;:58::i;:::-;5274:11;:252::i;:::-;5250:290;;-1:-1:-1;;;;;5250:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5250:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5012:539;5560:25;;;;:6;:25;;;;;:32;;-1:-1:-1;;5560:32:9;5588:4;5560:32;;;5717:3;;5704:40;;619:5;;5705:16;;:7;;5717:3;-1:-1:-1;;;5717:3:9;;;;5705:16;:11;:16;:::i;5704:40::-;5682:62;-1:-1:-1;5754:22:9;5779:24;:7;5682:62;5779:24;:11;:24;:::i;:::-;5813:5;;:38;;;-1:-1:-1;;;;;5813:38:9;;5824:10;5813:38;;;;;;;;;;;;5754:49;;-1:-1:-1;;;;;;5813:5:9;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5813:38:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5861:5:9;;5872:12;;;5861:37;;;-1:-1:-1;;;;;5861:37:9;;-1:-1:-1;;;;;5872:12:9;;;5861:37;;;;;;;;;;;;;;:5;;;-1:-1:-1;5861:10:9;;-1:-1:-1;5861:37:9;;;;;:5;;:37;;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;5861:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5998:11:9;;5959:51;;;;;;;;5998:11;;-1:-1:-1;5970:10:9;;-1:-1:-1;5959:51:9;;;;;;;;;;6020:11;:16;;6035:1;6020:16;;;6054:14;4692:1383;-1:-1:-1;;;;;;;4692:1383:9:o;7478:179::-;7571:4;7611:39;7625:18;7645:4;7611:13;:39::i;:::-;7594:13;;-1:-1:-1;;;;;7594:56:9;;;:13;;:56;;7478:179;-1:-1:-1;;;7478:179:9:o;1209:17::-;;;-1:-1:-1;;;1209:17:9;;;;;:::o;3376:134::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3468:14:9;:35;3376:134::o;3655:274::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;3814:33:9;;3806:73;;;;;-1:-1:-1;;;;;3806:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3890:12;:32;;-1:-1:-1;;;;;;3890:32:9;-1:-1:-1;;;;;3890:32:9;;;;;;;;;;3655:274::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;738:25:9:-;;;-1:-1:-1;;;;;738:25:9;;:::o;1693:458:35:-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:35;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;;;2069:56:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:35:o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;120:484:17:-;254:42;;;;;;;;;;;-1:-1:-1;;;;;254:42:17;;;;326:21;;336:10;326:21;;;;;;;;;179:13;;236:6;;254:42;179:13;;326:21;;;21:6:-1;;104:10;326:21:17;87:34:-1;135:17;;-1:-1;326:21:17;307:40;;-1:-1:-1;;;;;357:3:17;361:1;357:6;;;;;;;;;;;:12;-1:-1:-1;;;;;357:12:17;;;;;;;;;-1:-1:-1;;;;;379:3:17;383:1;379:6;;;;;;;;;;;:12;-1:-1:-1;;;;;379:12:17;;;;;;;;-1:-1:-1;406:6:17;401:169;422:2;418:1;:6;401:169;;;458:8;490:1;478:5;484:1;478:8;;;;;;;;;;-1:-1:-1;;;;;478:13:17;;;;472:20;;467:26;;458:36;;;;;;;;;;;;;;;;445:3;451:1;453;451:3;449:1;:5;445:10;;;;;;;;;;;:49;-1:-1:-1;;;;;445:49:17;;;;;;;;;521:8;541:5;547:1;541:8;;;;;;;;;;552:4;541:15;;;535:22;;530:28;;521:38;;;;;;;;;;;;;;;;508:3;514:1;516;514:3;512:1;:5;508:10;;;;;;;;;;;:51;-1:-1:-1;;;;;508:51:17;;;;;;;;-1:-1:-1;426:3:17;;401:169;;;-1:-1:-1;593:3:17;120:484;-1:-1:-1;;;;120:484:17:o;1229:1968:32:-;1307:7;1368:9;:16;1388:2;1368:22;1364:92;;1406:39;;;-1:-1:-1;;;;;1406:39:32;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:92;1806:4;1791:20;;1785:27;1851:4;1836:20;;1830:27;1904:4;1889:20;;1883:27;1522:9;1875:36;2822:66;2809:79;;2805:155;;;2904:45;;-1:-1:-1;;;;;2904:45:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:155;2974:1;:7;;2979:2;2974:7;;:18;;;;;2985:1;:7;;2990:2;2985:7;;2974:18;2970:95;;;3008:46;;-1:-1:-1;;;;;3008:46:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:95;3166:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3166:24:32;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3166:24:32;;-1:-1:-1;;3166:24:32;;;1229:1968;-1:-1:-1;;;;;;;1229:1968:32:o;678:492:17:-;810:42;;;;;;;;;;;-1:-1:-1;;;;;810:42:17;;;;882:21;;892:10;882:21;;;736:13;882:21;;;;;;-1:-1:-1;;;;;785:14:17;;;810:42;736:13;;882:21;;;21:6:-1;;104:10;882:21:17;87:34:-1;135:17;;-1:-1;882:21:17;863:40;;-1:-1:-1;;;;;913:3:17;917:1;913:6;;;;;;;;;;;:12;-1:-1:-1;;;;;913:12:17;;;;;;;;;-1:-1:-1;;;;;935:3:17;939:1;935:6;;;;;;;;;;;:12;-1:-1:-1;;;;;935:12:17;;;;;;;;-1:-1:-1;962:6:17;957:179;978:2;974:1;:6;957:179;;;1014:8;1051:1;1034:5;1040:1;1044:2;1040:6;1034:13;;;;;;;;;;-1:-1:-1;;;;;1034:18:17;;;;1028:25;;1023:31;;1014:41;;;;;;;;;;;;;;;;1001:3;1007:1;1009;1007:3;1005:1;:5;1001:10;;;;;;;;;;;:54;-1:-1:-1;;;;;1001:54:17;;;;;;;;;1082:8;1102:5;1108:1;1112:2;1108:6;1102:13;;;;;;;;;;1118:4;1102:20;;;1096:27;;1091:33;;1082:43;;;;;;;;;;;;;;;;1069:3;1075:1;1077;1075:3;1073:1;:5;1069:10;;;;;;;;;;;:56;-1:-1:-1;;;;;1069:56:17;;;;;;;;-1:-1:-1;982:3:17;;957:179;;1212:180;1317:13;1373:1;1376;1379;1382;1356:28;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1356:28:17;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1356:28:17;;;1342:43;;1212:180;;;;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"../libraries/String.sol\";\nimport \"./ERC20Shifted.sol\";\n\n/// @notice Shifter handles verifying mint and burn requests. A mintAuthority\n/// approves new assets to be minted by providing a digital signature. An owner\n/// of an asset can request for it to be burnt.\ncontract Shifter is Ownable {\n using SafeMath for uint256;\n\n uint8 public version = 2;\n\n uint256 constant BIPS_DENOMINATOR = 10000;\n uint256 public minShiftAmount;\n\n /// @notice Each Shifter token is tied to a specific shifted token.\n ERC20Shifted public token;\n\n /// @notice The mintAuthority is an address that can sign mint requests.\n address public mintAuthority;\n\n /// @dev feeRecipient is assumed to be an address (or a contract) that can\n /// accept erc20 payments it cannot be 0x0.\n /// @notice When tokens are mint or burnt, a portion of the tokens are\n /// forwarded to a fee recipient.\n address public feeRecipient;\n\n /// @notice The minting and burning fee in bips.\n uint16 public fee;\n\n /// @notice Each nHash can only be seen once.\n mapping (bytes32=>bool) public status;\n\n // LogShiftIn and LogShiftOut contain a unique `shiftID` that identifies\n // the mint or burn event.\n uint256 public nextShiftID = 0;\n\n event LogShiftIn(address indexed _to, uint256 _amount, uint256 indexed _shiftID);\n event LogShiftOut(bytes _to, uint256 _amount, uint256 indexed _shiftID, bytes indexed _indexedTo);\n\n /// @param _token The ERC20Shifted this Shifter is responsible for.\n /// @param _feeRecipient The recipient of burning and minting fees.\n /// @param _mintAuthority The address of the key that can sign mint\n /// requests.\n /// @param _fee The amount subtracted each burn and mint request and\n /// forwarded to the feeRecipient. In BIPS.\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee, uint256 _minShiftOutAmount) public {\n minShiftAmount = _minShiftOutAmount;\n token = _token;\n mintAuthority = _mintAuthority;\n fee = _fee;\n updateFeeRecipient(_feeRecipient);\n }\n\n // Public functions ////////////////////////////////////////////////////////\n\n /// @notice Claims ownership of the token passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called.\n /// Anyone can call this function.\n function claimTokenOwnership() public {\n token.claimOwnership();\n }\n\n /// @notice Allow the owner to update the owner of the ERC20Shifted token.\n function transferTokenOwnership(Shifter _nextTokenOwner) public onlyOwner {\n token.transferOwnership(address(_nextTokenOwner));\n _nextTokenOwner.claimTokenOwnership();\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextMintAuthority The address to start paying fees to.\n function updateMintAuthority(address _nextMintAuthority) public onlyOwner {\n mintAuthority = _nextMintAuthority;\n }\n\n /// @notice Allow the owner to update the minimum shiftOut amount.\n ///\n /// @param _minShiftOutAmount The new min shiftOut amount.\n function updateMinimumShiftOutAmount(uint256 _minShiftOutAmount) public onlyOwner {\n minShiftAmount = _minShiftOutAmount;\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextFeeRecipient The address to start paying fees to.\n function updateFeeRecipient(address _nextFeeRecipient) public onlyOwner {\n // ShiftIn and ShiftOut will fail if the feeRecipient is 0x0\n require(_nextFeeRecipient != address(0x0), \"fee recipient cannot be 0x0\");\n\n feeRecipient = _nextFeeRecipient;\n }\n\n /// @notice Allow the owner to update the fee.\n ///\n /// @param _nextFee The new fee for minting and burning.\n function updateFee(uint16 _nextFee) public onlyOwner {\n fee = _nextFee;\n }\n\n /// @notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _pHash (payload hash) The hash of the payload associated with the\n /// shift.\n /// @param _amount The amount of the token being shifted int, in its\n /// smallest value. (e.g. satoshis for BTC)\n /// @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n /// @param _sig The signature of the hash of the following values:\n /// (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\n function shiftIn(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes memory _sig) public returns (uint256) {\n // Verify signature\n bytes32 signedMessageHash = hashForSignature(_pHash, _amount, msg.sender, _nHash);\n require(status[signedMessageHash] == false, \"nonce hash already spent\");\n if (!verifySignature(signedMessageHash, _sig)) {\n // Return a detailed string containing the hash and recovered\n // signer. This is a costly operation but is only run in the revert\n // branch.\n revert(\n String.add4(\n \"invalid signature - hash: \",\n String.fromBytes32(signedMessageHash),\n \", signer: \",\n String.fromAddress(ECDSA.recover(signedMessageHash, _sig))\n )\n );\n }\n status[signedMessageHash] = true;\n\n // Mint `amount - fee` for the recipient and mint `fee` for the minter\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n uint256 receivedAmount = _amount.sub(absoluteFee);\n token.mint(msg.sender, receivedAmount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n emit LogShiftIn(msg.sender, receivedAmount, nextShiftID);\n nextShiftID += 1;\n\n return receivedAmount;\n }\n\n /// @notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _to The address to receive the unshifted digital asset. The\n /// format of this address should be of the destination chain.\n /// For example, when shifting out to Bitcoin, _to should be a\n /// Bitcoin address.\n /// @param _amount The amount of the token being shifted out, in its\n /// smallest value. (e.g. satoshis for BTC)\n function shiftOut(bytes memory _to, uint256 _amount) public returns (uint256) {\n // The recipient must not be empty. Better validation is possible,\n // but would need to be customized for each destination ledger.\n require(_to.length != 0, \"to address is empty\");\n require(_amount >= minShiftAmount, \"amount is less than the minimum shiftOut amount\");\n\n // Burn full amount and mint fee\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n token.burn(msg.sender, _amount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n uint256 receivedValue = _amount.sub(absoluteFee);\n emit LogShiftOut(_to, receivedValue, nextShiftID, _to);\n nextShiftID += 1;\n\n return receivedValue;\n }\n\n /// @notice verifySignature checks the the provided signature matches the provided\n /// parameters.\n function verifySignature(bytes32 _signedMessageHash, bytes memory _sig) public view returns (bool) {\n return mintAuthority == ECDSA.recover(_signedMessageHash, _sig);\n }\n\n /// @notice hashForSignature hashes the parameters so that they can be signed.\n function hashForSignature(bytes32 _pHash, uint256 _amount, address _to, bytes32 _nHash) public view returns (bytes32) {\n return keccak256(abi.encode(_pHash, _amount, address(token), _to, _nHash));\n }\n}\n\n/// @dev The following are not necessary for deploying BTCShifter or ZECShifter\n/// contracts, but are used to track deployments.\ncontract BTCShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee, uint256 _minShiftOutAmount)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee, _minShiftOutAmount) public {\n }\n}\n\ncontract ZECShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee, uint256 _minShiftOutAmount)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee, _minShiftOutAmount) public {\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3328 - ], - "Shifter": [ - 3304 - ], - "ZECShifter": [ - 3352 - ] - }, - "id": 3353, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7393, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7504, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7106, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 5321, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7503, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7503", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7503 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3304, - "linearizedBaseContracts": [ - 3304, - 7503 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7392, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7392", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "minShiftAmount", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "630:29:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "738:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2922, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "738:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "847:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "847:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1122:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1122:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2929, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1209:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2928, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1209:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2933, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1283:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2932, - "keyType": { - "id": 2930, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1292:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1283:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1301:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2936, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1435:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1435:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1464:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2944, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1489:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1489:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1510:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1510:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2942, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1527:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1527:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1488:64:9" - }, - "src": "1472:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2954, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1576:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2945, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1576:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1587:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1587:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1604:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1604:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2952, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1630:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1630:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1575:80:9" - }, - "src": "1558:98:9" - }, - { - "body": { - "id": 2987, - "nodeType": "Block", - "src": "2159:179:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2169:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2964, - "src": "2186:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2169:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2169:35:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2214:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2222:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2214:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2214:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2975, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "2238:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2976, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2254:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2238:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2238:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2979, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "2278:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2980, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2962, - "src": "2284:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2278:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2982, - "nodeType": "ExpressionStatement", - "src": "2278:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2984, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2317:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2983, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "2298:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2986, - "nodeType": "ExpressionStatement", - "src": "2298:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2988, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2043:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2955, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2043:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2064:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2064:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2087:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2087:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2962, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2111:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2961, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2111:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2124:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2124:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2042:109:9" - }, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2159:0:9" - }, - "scope": 3304, - "src": "2031:307:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2996, - "nodeType": "Block", - "src": "2646:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2991, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2656:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4313, - "src": "2656:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2656:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2995, - "nodeType": "ExpressionStatement", - "src": "2656:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [], - "src": "2636:2:9" - }, - "returnParameters": { - "id": 2990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2646:0:9" - }, - "scope": 3304, - "src": "2608:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3017, - "nodeType": "Block", - "src": "2844:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3008, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2886:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - ], - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2878:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2878:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2854:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4292, - "src": "2854:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2854:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3011, - "nodeType": "ExpressionStatement", - "src": "2854:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3012, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2913:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2997, - "src": "2913:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2913:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3016, - "nodeType": "ExpressionStatement", - "src": "2913:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3018, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3002, - "modifierName": { - "argumentTypes": null, - "id": 3001, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "2834:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2834:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2999, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3018, - "src": "2802:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2998, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "2802:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2801:25:9" - }, - "returnParameters": { - "id": 3003, - "nodeType": "ParameterList", - "parameters": [], - "src": "2844:0:9" - }, - "scope": 3304, - "src": "2770:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3029, - "nodeType": "Block", - "src": "3177:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3025, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3187:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3026, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3020, - "src": "3203:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3187:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3028, - "nodeType": "ExpressionStatement", - "src": "3187:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3030, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3023, - "modifierName": { - "argumentTypes": null, - "id": 3022, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3167:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3167:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "3132:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3019, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3132:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3131:28:9" - }, - "returnParameters": { - "id": 3024, - "nodeType": "ParameterList", - "parameters": [], - "src": "3177:0:9" - }, - "scope": 3304, - "src": "3103:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3041, - "nodeType": "Block", - "src": "3458:52:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3037, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "3468:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3032, - "src": "3485:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3468:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3040, - "nodeType": "ExpressionStatement", - "src": "3468:35:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the minimum shiftOut amount.\n\n /// @param _minShiftOutAmount The new min shiftOut amount.", - "id": 3042, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3035, - "modifierName": { - "argumentTypes": null, - "id": 3034, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3448:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3448:9:9" - } - ], - "name": "updateMinimumShiftOutAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3042, - "src": "3413:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3413:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3412:28:9" - }, - "returnParameters": { - "id": 3036, - "nodeType": "ParameterList", - "parameters": [], - "src": "3458:0:9" - }, - "scope": 3304, - "src": "3376:134:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3062, - "nodeType": "Block", - "src": "3727:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3050, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3814:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3843:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3835:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3835:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3814:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3849:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3049, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3806:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3806:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3057, - "nodeType": "ExpressionStatement", - "src": "3806:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3058, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3890:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3059, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3905:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3890:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3061, - "nodeType": "ExpressionStatement", - "src": "3890:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3063, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3047, - "modifierName": { - "argumentTypes": null, - "id": 3046, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3717:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3717:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3044, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3063, - "src": "3683:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3683:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3682:27:9" - }, - "returnParameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [], - "src": "3727:0:9" - }, - "scope": 3304, - "src": "3655:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3074, - "nodeType": "Block", - "src": "4108:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3070, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "4118:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3071, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4124:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "4118:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3073, - "nodeType": "ExpressionStatement", - "src": "4118:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3075, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3068, - "modifierName": { - "argumentTypes": null, - "id": 3067, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "4098:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4098:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3065, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "4074:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3064, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4074:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4073:17:9" - }, - "returnParameters": { - "id": 3069, - "nodeType": "ParameterList", - "parameters": [], - "src": "4108:0:9" - }, - "scope": 3304, - "src": "4055:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3186, - "nodeType": "Block", - "src": "4802:1273:9", - "statements": [ - { - "assignments": [ - 3089 - ], - "declarations": [ - { - "constant": false, - "id": 3089, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "4840:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3088, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4840:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3097, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3091, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "4885:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3092, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "4893:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "4902:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4902:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3095, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "4914:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3090, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "4868:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4868:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4840:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3099, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "4939:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3101, - "indexExpression": { - "argumentTypes": null, - "id": 3100, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "4946:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4968:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4939:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4975:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3098, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "4931:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4931:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3106, - "nodeType": "ExpressionStatement", - "src": "4931:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5016:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3108, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5033:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3109, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5052:4:9", - "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": 3107, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "5017:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5017:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3133, - "nodeType": "IfStatement", - "src": "5012:539:9", - "trueBody": { - "id": 3132, - "nodeType": "Block", - "src": "5059:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5307:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3118, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5376:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3116, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5357:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5192, - "src": "5357:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5357:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5416:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3125, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5483:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3126, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5502:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3123, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "5469:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "5469:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5469:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3121, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5450:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5295, - "src": "5450:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5450:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3113, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5274:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5319, - "src": "5274:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5274:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3112, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8199, - 8200 - ], - "referencedDeclaration": 8200, - "src": "5250:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5250:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "5250:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3134, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "5560:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3136, - "indexExpression": { - "argumentTypes": null, - "id": 3135, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5567:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5560:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5588:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5560:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3139, - "nodeType": "ExpressionStatement", - "src": "5560:32:9" - }, - { - "assignments": [ - 3141 - ], - "declarations": [ - { - "constant": false, - "id": 3141, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5682:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5682:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3150, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3148, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5727:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3144, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "5717:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3142, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5705:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "5705:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5705:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3146, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5704:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "5704:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5704:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5682:62:9" - }, - { - "assignments": [ - 3152 - ], - "declarations": [ - { - "constant": false, - "id": 3152, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5754:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3157, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3155, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5791:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3153, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5779:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "5779:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5779:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5754:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3161, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5824:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5824:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3163, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5836:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3158, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5813:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5813:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5813:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3165, - "nodeType": "ExpressionStatement", - "src": "5813:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3169, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5872:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3170, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3166, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5861:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5861:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5861:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3172, - "nodeType": "ExpressionStatement", - "src": "5861:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5970:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5970:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3176, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5982:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3177, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "5998:11:9", - "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": 3173, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "5959:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5959:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3179, - "nodeType": "EmitStatement", - "src": "5954:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3180, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "6020:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6035:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6020:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6020:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3184, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "6054:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3087, - "id": 3185, - "nodeType": "Return", - "src": "6047:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3187, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3077, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4709:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3076, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4709:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3079, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4725:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3078, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4725:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4742:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3080, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4742:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4758:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3082, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4758:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4708:68:9" - }, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3086, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4793:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4793:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4792:9:9" - }, - "scope": 3304, - "src": "4692:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3257, - "nodeType": "Block", - "src": "6632:733:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3197, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "6797:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6811:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6797:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6814:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3196, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6789:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6789:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3203, - "nodeType": "ExpressionStatement", - "src": "6789:47:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3205, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "6854:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3206, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6865:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6854:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74", - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6881:49:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - }, - "value": "amount is less than the minimum shiftOut amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - } - ], - "id": 3204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6846:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6846:85:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "6846:85:9" - }, - { - "assignments": [ - 3212 - ], - "declarations": [ - { - "constant": false, - "id": 3212, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "6983:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6983:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3221, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "7028:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3215, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "7018:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3213, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7006:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "7006:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7006:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7005:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "7005:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7005:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6983:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "7066:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7066:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3227, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3222, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7055:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "7055:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7055:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3229, - "nodeType": "ExpressionStatement", - "src": "7055:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3233, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "7107:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3234, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7121:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3230, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7096:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "7096:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7096:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3236, - "nodeType": "ExpressionStatement", - "src": "7096:37:9" - }, - { - "assignments": [ - 3238 - ], - "declarations": [ - { - "constant": false, - "id": 3238, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "7189:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7189:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3243, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3241, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7225:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3239, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7213:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "7213:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7189:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3245, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7264:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3246, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7269:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3247, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7284:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3248, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7297:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3244, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "7252:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7252:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3250, - "nodeType": "EmitStatement", - "src": "7247:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3251, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7311:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7326:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3254, - "nodeType": "ExpressionStatement", - "src": "7311:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7345:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3195, - "id": 3256, - "nodeType": "Return", - "src": "7338:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3258, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3189, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6572:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3188, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3191, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6590:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3190, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6590:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6571:35:9" - }, - "returnParameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3194, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6623:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6623:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:9:9" - }, - "scope": 3304, - "src": "6554:811:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7577:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3267, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "7594:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3270, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "7625:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "7645:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "7611:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "7611:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7611:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7594:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3266, - "id": 3274, - "nodeType": "Return", - "src": "7587:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7503:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7503:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3262, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7531:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3261, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7531:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7502:47:9" - }, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7571:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3264, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7571:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7570:6:9" - }, - "scope": 3304, - "src": "7478:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3302, - "nodeType": "Block", - "src": "7864:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3292, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "7902:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3280, - "src": "7910:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3295, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7927:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7919:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7919:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3297, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3282, - "src": "7935:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3298, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3284, - "src": "7940:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3290, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "7891:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7891:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3289, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "7881:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7881:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3288, - "id": 3301, - "nodeType": "Return", - "src": "7874:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3303, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3278, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7772:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3277, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3280, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7788:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7788:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3282, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7805:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7805:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7818:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3283, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7818:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7771:62:9" - }, - "returnParameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3287, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7855:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3286, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7855:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7854:9:9" - }, - "scope": 3304, - "src": "7746:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "485:7472:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3305, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3306, - "nodeType": "InheritanceSpecifier", - "src": "8112:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3328, - "linearizedBaseContracts": [ - 3328, - 3304, - 7503 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3326, - "nodeType": "Block", - "src": "8335:11:9", - "statements": [] - }, - "documentation": null, - "id": 3327, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3319, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8263:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3320, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3310, - "src": "8271:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3321, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "8286:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3322, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8302:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "8308:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3324, - "modifierName": { - "argumentTypes": null, - "id": 3318, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8255:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8255:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3308, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8138:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3307, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8138:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3310, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8159:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3312, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8182:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8182:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3314, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8206:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3313, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8206:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3316, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8219:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8219:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8137:109:9" - }, - "returnParameters": { - "id": 3325, - "nodeType": "ParameterList", - "parameters": [], - "src": "8335:0:9" - }, - "scope": 3328, - "src": "8126:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8089:259:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3329, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8373:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3330, - "nodeType": "InheritanceSpecifier", - "src": "8373:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3352, - "linearizedBaseContracts": [ - 3352, - 3304, - 7503 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3350, - "nodeType": "Block", - "src": "8596:11:9", - "statements": [] - }, - "documentation": null, - "id": 3351, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "8524:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3344, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "8532:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3345, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3336, - "src": "8547:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3346, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3338, - "src": "8563:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3347, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3340, - "src": "8569:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3348, - "modifierName": { - "argumentTypes": null, - "id": 3342, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8516:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8516:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8399:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3331, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8399:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8420:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8420:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3336, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8443:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8443:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3338, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8467:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3337, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8467:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3340, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8480:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8480:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8398:109:9" - }, - "returnParameters": { - "id": 3349, - "nodeType": "ParameterList", - "parameters": [], - "src": "8596:0:9" - }, - "scope": 3352, - "src": "8387:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8350:259:9" - } - ], - "src": "0:8609:9" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3328 - ], - "Shifter": [ - 3304 - ], - "ZECShifter": [ - 3352 - ] - }, - "id": 3353, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7393, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7504, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7106, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 5321, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7503, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7503", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7503 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3304, - "linearizedBaseContracts": [ - 3304, - 7503 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7392, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7392", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "minShiftAmount", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "630:29:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "738:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2922, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "738:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "847:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "847:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1122:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1122:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2929, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1209:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2928, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1209:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2933, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1283:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2932, - "keyType": { - "id": 2930, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1292:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1283:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1301:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2936, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1435:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1435:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1464:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2944, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1489:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1489:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1510:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1510:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2942, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1527:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1527:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1488:64:9" - }, - "src": "1472:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2954, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1576:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2945, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1576:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1587:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1587:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1604:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1604:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2952, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1630:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1630:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1575:80:9" - }, - "src": "1558:98:9" - }, - { - "body": { - "id": 2987, - "nodeType": "Block", - "src": "2159:179:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2169:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2964, - "src": "2186:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2169:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2169:35:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2214:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2222:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2214:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2214:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2975, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "2238:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2976, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2254:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2238:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2238:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2979, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "2278:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2980, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2962, - "src": "2284:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2278:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2982, - "nodeType": "ExpressionStatement", - "src": "2278:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2984, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2317:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2983, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "2298:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2986, - "nodeType": "ExpressionStatement", - "src": "2298:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2988, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2043:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2955, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2043:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2064:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2064:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2087:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2087:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2962, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2111:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2961, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2111:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2124:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2124:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2042:109:9" - }, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2159:0:9" - }, - "scope": 3304, - "src": "2031:307:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2996, - "nodeType": "Block", - "src": "2646:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2991, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2656:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4313, - "src": "2656:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2656:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2995, - "nodeType": "ExpressionStatement", - "src": "2656:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [], - "src": "2636:2:9" - }, - "returnParameters": { - "id": 2990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2646:0:9" - }, - "scope": 3304, - "src": "2608:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3017, - "nodeType": "Block", - "src": "2844:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3008, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2886:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - ], - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2878:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2878:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2854:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4292, - "src": "2854:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2854:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3011, - "nodeType": "ExpressionStatement", - "src": "2854:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3012, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2913:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2997, - "src": "2913:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2913:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3016, - "nodeType": "ExpressionStatement", - "src": "2913:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3018, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3002, - "modifierName": { - "argumentTypes": null, - "id": 3001, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "2834:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2834:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2999, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3018, - "src": "2802:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2998, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "2802:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2801:25:9" - }, - "returnParameters": { - "id": 3003, - "nodeType": "ParameterList", - "parameters": [], - "src": "2844:0:9" - }, - "scope": 3304, - "src": "2770:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3029, - "nodeType": "Block", - "src": "3177:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3025, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3187:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3026, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3020, - "src": "3203:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3187:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3028, - "nodeType": "ExpressionStatement", - "src": "3187:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3030, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3023, - "modifierName": { - "argumentTypes": null, - "id": 3022, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3167:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3167:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "3132:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3019, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3132:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3131:28:9" - }, - "returnParameters": { - "id": 3024, - "nodeType": "ParameterList", - "parameters": [], - "src": "3177:0:9" - }, - "scope": 3304, - "src": "3103:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3041, - "nodeType": "Block", - "src": "3458:52:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3037, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "3468:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3032, - "src": "3485:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3468:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3040, - "nodeType": "ExpressionStatement", - "src": "3468:35:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the minimum shiftOut amount.\n\n /// @param _minShiftOutAmount The new min shiftOut amount.", - "id": 3042, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3035, - "modifierName": { - "argumentTypes": null, - "id": 3034, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3448:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3448:9:9" - } - ], - "name": "updateMinimumShiftOutAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3042, - "src": "3413:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3413:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3412:28:9" - }, - "returnParameters": { - "id": 3036, - "nodeType": "ParameterList", - "parameters": [], - "src": "3458:0:9" - }, - "scope": 3304, - "src": "3376:134:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3062, - "nodeType": "Block", - "src": "3727:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3050, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3814:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3843:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3835:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3835:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3814:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3849:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3049, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3806:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3806:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3057, - "nodeType": "ExpressionStatement", - "src": "3806:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3058, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3890:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3059, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3905:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3890:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3061, - "nodeType": "ExpressionStatement", - "src": "3890:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3063, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3047, - "modifierName": { - "argumentTypes": null, - "id": 3046, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3717:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3717:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3044, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3063, - "src": "3683:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3683:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3682:27:9" - }, - "returnParameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [], - "src": "3727:0:9" - }, - "scope": 3304, - "src": "3655:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3074, - "nodeType": "Block", - "src": "4108:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3070, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "4118:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3071, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4124:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "4118:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3073, - "nodeType": "ExpressionStatement", - "src": "4118:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3075, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3068, - "modifierName": { - "argumentTypes": null, - "id": 3067, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "4098:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4098:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3065, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "4074:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3064, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4074:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4073:17:9" - }, - "returnParameters": { - "id": 3069, - "nodeType": "ParameterList", - "parameters": [], - "src": "4108:0:9" - }, - "scope": 3304, - "src": "4055:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3186, - "nodeType": "Block", - "src": "4802:1273:9", - "statements": [ - { - "assignments": [ - 3089 - ], - "declarations": [ - { - "constant": false, - "id": 3089, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "4840:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3088, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4840:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3097, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3091, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "4885:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3092, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "4893:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "4902:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4902:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3095, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "4914:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3090, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "4868:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4868:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4840:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3099, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "4939:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3101, - "indexExpression": { - "argumentTypes": null, - "id": 3100, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "4946:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4968:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4939:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4975:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3098, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "4931:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4931:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3106, - "nodeType": "ExpressionStatement", - "src": "4931:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5016:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3108, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5033:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3109, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5052:4:9", - "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": 3107, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "5017:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5017:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3133, - "nodeType": "IfStatement", - "src": "5012:539:9", - "trueBody": { - "id": 3132, - "nodeType": "Block", - "src": "5059:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5307:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3118, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5376:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3116, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5357:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5192, - "src": "5357:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5357:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5416:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3125, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5483:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3126, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5502:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3123, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "5469:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "5469:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5469:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3121, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5450:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5295, - "src": "5450:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5450:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3113, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5274:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5319, - "src": "5274:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5274:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3112, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8199, - 8200 - ], - "referencedDeclaration": 8200, - "src": "5250:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5250:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "5250:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3134, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "5560:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3136, - "indexExpression": { - "argumentTypes": null, - "id": 3135, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5567:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5560:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5588:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5560:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3139, - "nodeType": "ExpressionStatement", - "src": "5560:32:9" - }, - { - "assignments": [ - 3141 - ], - "declarations": [ - { - "constant": false, - "id": 3141, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5682:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5682:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3150, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3148, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5727:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3144, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "5717:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3142, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5705:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "5705:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5705:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3146, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5704:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "5704:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5704:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5682:62:9" - }, - { - "assignments": [ - 3152 - ], - "declarations": [ - { - "constant": false, - "id": 3152, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5754:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3157, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3155, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5791:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3153, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5779:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "5779:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5779:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5754:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3161, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5824:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5824:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3163, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5836:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3158, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5813:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5813:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5813:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3165, - "nodeType": "ExpressionStatement", - "src": "5813:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3169, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5872:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3170, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3166, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5861:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5861:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5861:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3172, - "nodeType": "ExpressionStatement", - "src": "5861:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5970:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5970:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3176, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5982:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3177, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "5998:11:9", - "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": 3173, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "5959:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5959:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3179, - "nodeType": "EmitStatement", - "src": "5954:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3180, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "6020:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6035:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6020:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6020:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3184, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "6054:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3087, - "id": 3185, - "nodeType": "Return", - "src": "6047:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3187, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3077, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4709:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3076, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4709:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3079, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4725:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3078, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4725:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4742:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3080, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4742:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4758:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3082, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4758:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4708:68:9" - }, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3086, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4793:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4793:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4792:9:9" - }, - "scope": 3304, - "src": "4692:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3257, - "nodeType": "Block", - "src": "6632:733:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3197, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "6797:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6811:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6797:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6814:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3196, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6789:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6789:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3203, - "nodeType": "ExpressionStatement", - "src": "6789:47:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3205, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "6854:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3206, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6865:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6854:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74", - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6881:49:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - }, - "value": "amount is less than the minimum shiftOut amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - } - ], - "id": 3204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6846:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6846:85:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "6846:85:9" - }, - { - "assignments": [ - 3212 - ], - "declarations": [ - { - "constant": false, - "id": 3212, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "6983:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6983:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3221, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "7028:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3215, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "7018:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3213, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7006:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "7006:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7006:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7005:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "7005:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7005:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6983:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "7066:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7066:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3227, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3222, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7055:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "7055:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7055:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3229, - "nodeType": "ExpressionStatement", - "src": "7055:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3233, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "7107:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3234, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7121:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3230, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7096:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "7096:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7096:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3236, - "nodeType": "ExpressionStatement", - "src": "7096:37:9" - }, - { - "assignments": [ - 3238 - ], - "declarations": [ - { - "constant": false, - "id": 3238, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "7189:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7189:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3243, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3241, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7225:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3239, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7213:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "7213:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7189:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3245, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7264:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3246, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7269:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3247, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7284:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3248, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7297:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3244, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "7252:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7252:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3250, - "nodeType": "EmitStatement", - "src": "7247:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3251, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7311:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7326:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3254, - "nodeType": "ExpressionStatement", - "src": "7311:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7345:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3195, - "id": 3256, - "nodeType": "Return", - "src": "7338:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3258, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3189, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6572:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3188, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3191, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6590:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3190, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6590:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6571:35:9" - }, - "returnParameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3194, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6623:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6623:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:9:9" - }, - "scope": 3304, - "src": "6554:811:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7577:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3267, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "7594:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3270, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "7625:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "7645:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "7611:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "7611:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7611:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7594:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3266, - "id": 3274, - "nodeType": "Return", - "src": "7587:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7503:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7503:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3262, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7531:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3261, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7531:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7502:47:9" - }, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7571:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3264, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7571:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7570:6:9" - }, - "scope": 3304, - "src": "7478:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3302, - "nodeType": "Block", - "src": "7864:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3292, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "7902:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3280, - "src": "7910:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3295, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7927:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7919:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7919:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3297, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3282, - "src": "7935:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3298, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3284, - "src": "7940:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3290, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "7891:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7891:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3289, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "7881:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7881:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3288, - "id": 3301, - "nodeType": "Return", - "src": "7874:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3303, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3278, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7772:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3277, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3280, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7788:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7788:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3282, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7805:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7805:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7818:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3283, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7818:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7771:62:9" - }, - "returnParameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3287, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7855:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3286, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7855:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7854:9:9" - }, - "scope": 3304, - "src": "7746:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "485:7472:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3305, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3306, - "nodeType": "InheritanceSpecifier", - "src": "8112:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3328, - "linearizedBaseContracts": [ - 3328, - 3304, - 7503 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3326, - "nodeType": "Block", - "src": "8335:11:9", - "statements": [] - }, - "documentation": null, - "id": 3327, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3319, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8263:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3320, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3310, - "src": "8271:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3321, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "8286:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3322, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8302:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "8308:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3324, - "modifierName": { - "argumentTypes": null, - "id": 3318, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8255:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8255:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3308, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8138:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3307, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8138:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3310, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8159:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3312, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8182:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8182:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3314, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8206:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3313, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8206:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3316, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8219:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8219:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8137:109:9" - }, - "returnParameters": { - "id": 3325, - "nodeType": "ParameterList", - "parameters": [], - "src": "8335:0:9" - }, - "scope": 3328, - "src": "8126:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8089:259:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3329, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8373:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3330, - "nodeType": "InheritanceSpecifier", - "src": "8373:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3352, - "linearizedBaseContracts": [ - 3352, - 3304, - 7503 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3350, - "nodeType": "Block", - "src": "8596:11:9", - "statements": [] - }, - "documentation": null, - "id": 3351, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "8524:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3344, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "8532:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3345, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3336, - "src": "8547:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3346, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3338, - "src": "8563:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3347, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3340, - "src": "8569:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3348, - "modifierName": { - "argumentTypes": null, - "id": 3342, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8516:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8516:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8399:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3331, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8399:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8420:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8420:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3336, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8443:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8443:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3338, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8467:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3337, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8467:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3340, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8480:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8480:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8398:109:9" - }, - "returnParameters": { - "id": 3349, - "nodeType": "ParameterList", - "parameters": [], - "src": "8596:0:9" - }, - "scope": 3352, - "src": "8387:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8350:259:9" - } - ], - "src": "0:8609:9" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -12286,90 +534,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T06:30:23.244Z", - "devdoc": { - "details": "The following are not necessary for deploying BTCShifter or ZECShifter contracts, but are used to track deployments.", - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "params": { - "_amount": "The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)", - "_nHash": "(nonce hash) The hash of the nonce, amount and pHash.", - "_pHash": "(payload hash) The hash of the payload associated with the shift.", - "_sig": "The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority." - } - }, - "shiftOut(bytes,uint256)": { - "params": { - "_amount": "The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)", - "_to": "The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address." - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "updateFee(uint16)": { - "params": { - "_nextFee": "The new fee for minting and burning." - } - }, - "updateFeeRecipient(address)": { - "params": { - "_nextFeeRecipient": "The address to start paying fees to." - } - }, - "updateMinimumShiftOutAmount(uint256)": { - "params": { - "_minShiftOutAmount": "The new min shiftOut amount." - } - }, - "updateMintAuthority(address)": { - "params": { - "_nextMintAuthority": "The address to start paying fees to." - } - } - } - }, - "userdoc": { - "methods": { - "claimTokenOwnership()": { - "notice": "Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function." - }, - "hashForSignature(bytes32,uint256,address,bytes32)": { - "notice": "hashForSignature hashes the parameters so that they can be signed." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "notice": "shiftIn mints tokens after taking a fee for the `_feeRecipient`. " - }, - "shiftOut(bytes,uint256)": { - "notice": "shiftOut burns tokens after taking a fee for the `_feeRecipient`. " - }, - "transferTokenOwnership(address)": { - "notice": "Allow the owner to update the owner of the ERC20Shifted token." - }, - "updateFee(uint16)": { - "notice": "Allow the owner to update the fee. " - }, - "updateFeeRecipient(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "updateMinimumShiftOutAmount(uint256)": { - "notice": "Allow the owner to update the minimum shiftOut amount. " - }, - "updateMintAuthority(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "verifySignature(bytes32,bytes)": { - "notice": "verifySignature checks the the provided signature matches the provided parameters." - } - } - } + "updatedAt": "2019-08-02T06:30:23.244Z" } \ No newline at end of file diff --git a/build/testnet/DarknodePayment.json b/build/testnet/DarknodePayment.json index afb0bea9..3e977c08 100644 --- a/build/testnet/DarknodePayment.json +++ b/build/testnet/DarknodePayment.json @@ -762,24405 +762,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"previousCycleRewardShare\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"registerToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"pendingTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"darknodeBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_durationSeconds\",\"type\":\"uint256\"}],\"name\":\"updateCycleDuration\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"shareCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"rewardClaimed\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"unclaimedRewards\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"store\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"registeredTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"updateBlacklister\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"changeCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"deregisterToken\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blacklister\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"registeredTokenIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cycleTimeout\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"previousCycle\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"currentCycleRewardPool\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_tokens\",\"type\":\"address[]\"}],\"name\":\"withdrawMultiple\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ETHEREUM\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_darknodeRegistry\",\"type\":\"address\"},{\"name\":\"_darknodePaymentStore\",\"type\":\"address\"},{\"name\":\"_cycleDurationSeconds\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeBlacklisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_time\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeWhitelisted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknode\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_cycle\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeClaim\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_payer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogPaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_payee\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogDarknodeWithdrew\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newCycle\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_lastCycle\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_cycleTimeout\",\"type\":\"uint256\"}],\"name\":\"LogNewCycle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newDuration\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_oldDuration\",\"type\":\"uint256\"}],\"name\":\"LogCycleDurationChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_newBlacklister\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_oldBlacklister\",\"type\":\"address\"}],\"name\":\"LogBlacklisterChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogTokenRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"LogTokenDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"blacklist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to blacklist\"}},\"claim(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to claim\"}},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_cycleDurationSeconds\":\"The minimum time before a new cycle can occur in seconds\",\"_darknodePaymentStore\":\"The address of the DarknodePaymentStore contract\",\"_darknodeRegistry\":\"The address of the DarknodeRegistry contract\"}},\"deposit(uint256,address)\":{\"params\":{\"_token\":\"The token address\",\"_value\":\"The amount of token deposit in the token's smallest unit.\"}},\"deregisterToken(address)\":{\"params\":{\"_token\":\"The address of the token to be deregistered.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerToken(address)\":{\"params\":{\"_token\":\"The address of the token to be registered.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferStoreOwnership(address)\":{\"params\":{\"_newOwner\":\"The address to transfer the ownership to.\"}},\"updateBlacklister(address)\":{\"params\":{\"_addr\":\"The new Blacklister contract address.\"}},\"updateCycleDuration(uint256)\":{\"params\":{\"_durationSeconds\":\"The amount of time (in seconds) that should have passed before a new cycle can be called.\"}},\"withdraw(address,address)\":{\"params\":{\"_darknode\":\"The address of the darknode\",\"_token\":\"Which token to transfer\"}}}},\"userdoc\":{\"methods\":{\"blacklist(address)\":{\"notice\":\"Blacklists a darknode from participating in rewards. \"},\"changeCycle()\":{\"notice\":\"Changes the current cycle.\"},\"claim(address)\":{\"notice\":\"Claims the rewards allocated to the darknode last cycle and increments the darknode balances. Whitelists the darknode if it hasn't already been whitelisted. If a darknode does not call claim() then the rewards for the previous cycle is lost. \"},\"claimStoreOwnership()\":{\"notice\":\"Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another DarknodePaymentStore.\"},\"constructor\":\"The contract constructor. Starts the current cycle using the time of deploy. \",\"currentCycleRewardPool(address)\":{\"notice\":\"The current balance of the contract available as reward for the current cycle\"},\"deposit(uint256,address)\":{\"notice\":\"Deposits token into the contract to be paid to the Darknodes \"},\"deregisterToken(address)\":{\"notice\":\"Removes a token from the list of supported tokens. Deregistration is pending until next cycle. \"},\"registerToken(address)\":{\"notice\":\"Adds tokens to be payable. Registration is pending until next cycle. \"},\"transferStoreOwnership(address)\":{\"notice\":\"Allows the contract owner to initiate an ownership transfer of the DarknodePaymentStore. \"},\"updateBlacklister(address)\":{\"notice\":\"Updates the Blacklister contract address. \"},\"updateCycleDuration(uint256)\":{\"notice\":\"Updates cycle duration \"},\"withdraw(address,address)\":{\"notice\":\"Transfers the funds allocated to the darknode to the darknode owner. \"}},\"notice\":\"DarknodePayment is responsible for paying off darknodes for their computation.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol\":\"DarknodePayment\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol\":{\"keccak256\":\"0x392181844a36f9a56b437d62a1cbf938248e6bcc9a1dc831d84c261b7444c405\",\"urls\":[\"bzzr://fc7cd553ee01034cedcce4ba7d17b221d429fd97c48ab6bed5f592cd0020acb0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":{\"keccak256\":\"0x5fa14e396e45b93df54c1641ce8d0d83fa8ac3ec6679bb969b4088360e2f97d5\",\"urls\":[\"bzzr://de076428cc66269df2aa797cee62012ff56c963eeb1dfee77314731f9ea98200\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol\":{\"keccak256\":\"0xb9e38917912b1ff2e0a1d6996636170c0af89fb412d4168a5dfa6c9a55b2f71a\",\"urls\":[\"bzzr://238d0af72f2ac122a434f414df1707630b5a07fee0e042fdf94b97f202f34ac0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzzr://f7f6da60a184233fd666ac44e6fb2bd51ca6ebdc4867a310d368049aa4e62786\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b4838038062002b48833981018060405260808110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b50506020820151604080840151606090940151600080546001600160a01b03191633178082559251949750929550926001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38351620000f6906001906020870190620001e6565b50600280546001600160a01b038086166001600160a01b0319928316179092556003805492851692821692909217909155600e82905560048054909116331790554360055542600d8190556200015c9082620022076200016a602090811b91909117901c565b600f55506200028b92505050565b600082820183811015620001df57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200022957805160ff191683800117855562000259565b8280016001018555821562000259579182015b82811115620002595782518255916020019190600101906200023c565b50620002679291506200026b565b5090565b6200028891905b8082111562000267576000815560010162000272565b90565b6128ad806200029b6000396000f3fe6080604052600436106102045760003560e01c80639a0ba2ea11610118578063c2250a99116100a0578063f75adff81161006f578063f75adff814610713578063f7cdf47c146107a0578063f940e385146107b5578063f9f92be4146107f0578063ffa1ad741461082357610204565b8063c2250a9914610665578063e311481514610698578063e80b2b3d146106ad578063f2fde38b146106e057610204565b8063bab2af1d116100e7578063bab2af1d146105c0578063bab2f552146105f3578063bd10243014610608578063bfdce1991461061d578063c0470bb31461065057610204565b80639a0ba2ea146105395780639e45e0d014610563578063ad38bf2214610578578063b3a2af69146105ab57610204565b806370324b771161019b57806383b781881161016a57806383b781881461047a5780638da5cb5b146104c75780638f32d59b146104dc578063949813b8146104f1578063975057e71461052457610204565b806370324b77146103eb578063715018a61461042657806374c9ea821461043b5780637f03864b1461046557610204565b8063352fc85f116101d7578063352fc85f1461034f5780635bec4cb4146103955780636e553f65146103aa5780636fd689e8146103d657610204565b806305cf47441461028d57806309824a80146102d25780631e83409a14610307578063335e536c1461033a575b6003546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561023d573d6000803e3d6000fd5b506040805134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2005b34801561029957600080fd5b506102c0600480360360208110156102b057600080fd5b50356001600160a01b03166108ad565b60408051918252519081900360200190f35b3480156102de57600080fd5b50610305600480360360208110156102f557600080fd5b50356001600160a01b03166108bf565b005b34801561031357600080fd5b506103056004803603602081101561032a57600080fd5b50356001600160a01b0316610a4d565b34801561034657600080fd5b506102c0610dd3565b34801561035b57600080fd5b506103796004803603602081101561037257600080fd5b5035610dd9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a157600080fd5b506102c0610e00565b610305600480360360408110156103c057600080fd5b50803590602001356001600160a01b0316610e06565b3480156103e257600080fd5b50610305610f87565b3480156103f757600080fd5b506102c06004803603604081101561040e57600080fd5b506001600160a01b038135811691602001351661103b565b34801561043257600080fd5b506103056110ca565b34801561044757600080fd5b506103056004803603602081101561045e57600080fd5b503561115e565b34801561047157600080fd5b506102c06111ef565b34801561048657600080fd5b506104b36004803603604081101561049d57600080fd5b506001600160a01b0381351690602001356111f5565b604080519115158252519081900360200190f35b3480156104d357600080fd5b50610379611215565b3480156104e857600080fd5b506104b3611225565b3480156104fd57600080fd5b506102c06004803603602081101561051457600080fd5b50356001600160a01b0316611236565b34801561053057600080fd5b50610379611248565b34801561054557600080fd5b506103796004803603602081101561055c57600080fd5b5035611257565b34801561056f57600080fd5b50610379611264565b34801561058457600080fd5b506103056004803603602081101561059b57600080fd5b50356001600160a01b0316611273565b3480156105b757600080fd5b506102c0611385565b3480156105cc57600080fd5b50610305600480360360208110156105e357600080fd5b50356001600160a01b0316611570565b3480156105ff57600080fd5b506102c0611633565b34801561061457600080fd5b50610379611639565b34801561062957600080fd5b506102c06004803603602081101561064057600080fd5b50356001600160a01b0316611648565b34801561065c57600080fd5b506102c061165a565b34801561067157600080fd5b506103056004803603602081101561068857600080fd5b50356001600160a01b0316611660565b3480156106a457600080fd5b506102c0611716565b3480156106b957600080fd5b506102c0600480360360208110156106d057600080fd5b50356001600160a01b031661171c565b3480156106ec57600080fd5b506103056004803603602081101561070357600080fd5b50356001600160a01b03166117be565b34801561071f57600080fd5b506103056004803603604081101561073657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561076157600080fd5b82018360208201111561077357600080fd5b8035906020019184602083028401116401000000008311171561079557600080fd5b509092509050611811565b3480156107ac57600080fd5b50610379611849565b3480156107c157600080fd5b50610305600480360360408110156107d857600080fd5b506001600160a01b0381358116916020013516611861565b3480156107fc57600080fd5b506103056004803603602081101561081357600080fd5b50356001600160a01b0316611aee565b34801561082f57600080fd5b50610838611ccf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561087257818101518382015260200161085a565b50505050905090810190601f16801561089f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600c6020526000908152604090205481565b6108c7611225565b6109095760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a6020526040902054156109775760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b60085460005b818110156109f957826001600160a01b03166008828154811061099c57fe5b6000918252602090912001546001600160a01b031614156109f157604051600160e51b62461bcd0281526004018080602001828103825260228152602001806128406022913960400191505060405180910390fd5b60010161097d565b5050600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015610aa057600080fd5b505afa158015610ab4573d6000803e3d6000fd5b505050506040513d6020811015610aca57600080fd5b5051610b205760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e01b63fe575a870281526001600160a01b03808616600483015291518593929092169163fe575a8791602480820192602092909190829003018186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d6020811015610b9d57600080fd5b505115610bf45760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b639a4d6f3b0281526001600160a01b03868116600483015291516000939290921691639a4d6f3b91602480820192602092909190829003018186803b158015610c4857600080fd5b505afa158015610c5c573d6000803e3d6000fd5b505050506040513d6020811015610c7257600080fd5b5051905080610d295760035460408051600160e11b634d8c928d0281526001600160a01b03878116600483015291519190921691639b19251a91602480830192600092919082900301818387803b158015610ccc57600080fd5b505af1158015610ce0573d6000803e3d6000fd5b50506040805142815290516001600160a01b03881693507f7634be097aa1800f447c3ae3ffe9444f1bc44a98bd2c1e986c1883f9f645f2b692509081900360200190a250610dce565b600d548110610d825760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f7420636c61696d20666f722074686973206379636c650000000000604482015290519081900360640190fd5b610d8b84611d5c565b60065460408051918252516001600160a01b038616917f99c5ad5c5f898b30039b8cc54b8c0e6eb423e49bfc965a5999ebad131984e40d919081900360200190a2505b505050565b600d5481565b60088181548110610de657fe5b6000918252602090912001546001600160a01b0316905081565b600e5481565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610ec557348314610e845760408051600160e51b62461bcd02815260206004820152601860248201527f6d69736d617463686564206465706f7369742076616c75650000000000000000604482015290519081900360640190fd5b5060035460405134916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebf573d6000803e3d6000fd5b50610f40565b3415610f1b5760408051600160e51b62461bcd02815260206004820152601960248201527f756e6578706563746564206574686572207472616e7366657200000000000000604482015290519081900360640190fd5b600354610f3d906001600160a01b03848116913391168663ffffffff611f2416565b90505b604080518281526001600160a01b0384166020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2505050565b610f8f611225565b610fd15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b50505050565b60035460408051600160e01b6370324b770281526001600160a01b0385811660048301528481166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561109757600080fd5b505afa1580156110ab573d6000803e3d6000fd5b505050506040513d60208110156110c157600080fd5b50519392505050565b6110d2611225565b6111145760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611166611225565b6111a85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600e805490829055604080518381526020810183905281517f59cbd678a801fd313f133a5efc6be7aee2814b07d41c9d9fb72f91197b2f9d4a929181900390910190a15050565b60075481565b601060209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b600b6020526000908152604090205481565b6003546001600160a01b031681565b60098181548110610de657fe5b6002546001600160a01b031681565b61127b611225565b6112bd5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b03811661131b5760408051600160e51b62461bcd02815260206004820152601860248201527f696e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b600454604080516001600160a01b038085168252909216602083015280517fef549604431567c0cd1b94ebc91fed6cf5cd907f6ff0b63aa1d475dcf8d4901c9281900390910190a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000600f544210156113e15760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f74206379636c65207965743a20746f6f206561726c790000000000604482015290519081900360640190fd5b60055443141561143b5760408051600160e51b62461bcd02815260206004820152600c60248201527f6e6f206e657720626c6f636b0000000000000000000000000000000000000000604482015290519081900360640190fd5b60095460005b8181101561147b576114736009828154811061145957fe5b6000918252602090912001546001600160a01b031661210f565b600101611441565b506005805460065543905542600d819055600e5461149f919063ffffffff61220716565b600f5560035460408051600160e11b630fe37f4702815290516001600160a01b0390921691631fc6fe8e91600480820192602092909190829003018186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d602081101561151457600080fd5b505160075561152161226b565b600554600654600f5460408051938452602084019290925282820152517f6611b6f4e1fb92277f863eca934cba1c2d6987070d73762b72b942720bfe43a29181900360600190a1505060055490565b611578611225565b6115ba5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a60205260409020546116275760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b6116308161233c565b50565b60055481565b6004546001600160a01b031681565b600a6020526000908152604090205481565b600f5481565b611668611225565b6116aa5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b60035460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b5050505050565b60065481565b6001600160a01b038082166000818152600b60209081526040808320546003548251600160e01b63a0821be30281526004810196909652915193956117b895919492169263a0821be392602480840193829003018186803b15801561178057600080fd5b505afa158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50519063ffffffff61245716565b92915050565b6117c6611225565b6118085760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b611630816124b7565b60005b81811015611035576118418484848481811061182c57fe5b905060200201356001600160a01b0316611861565b600101611814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60025460408051600160e01b631cedf8a30281526001600160a01b03858116600483015291516000939290921691631cedf8a391602480820192602092909190829003018186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b505190506001600160a01b0381166119415760408051600160e51b62461bcd02815260206004820152601660248201527f696e76616c6964206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b6370324b770281526001600160a01b0386811660048301528581166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b5051905080611a205760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7468696e6720746f20776974686472617700000000000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b63f9ce78130281526001600160a01b03878116600483015286811660248301526044820185905285811660648301529151919092169163f9ce781391608480830192600092919082900301818387803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b5050604080518481526001600160a01b038781166020830152825190891694507fe1f157c0881b2e477dca89772b158029611366b8e7dc8be4f6f308fa7a0aa02893509081900390910190a250505050565b6004546001600160a01b03163314611b505760408051600160e51b62461bcd02815260206004820152600f60248201527f6e6f7420426c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d6020811015611bcd57600080fd5b5051611c235760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e21b633e7e4af90281526001600160a01b0385811660048301529151919092169163f9f92be491602480830192600092919082900301818387803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b50506040805142815290516001600160a01b03861693507fd2b847810d644004679c7a8d5f5188fe2b12b6f34dba8501760d99232fa9b7bc92509081900360200190a25050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b505050505081565b6001600160a01b0381166000908152601060209081526040808320600654845290915290205460ff1615611dda5760408051600160e51b62461bcd02815260206004820152601660248201527f72657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260106020908152604080832060065484529091528120805460ff19166001179055600954905b81811015610dce57600060098281548110611e2657fe5b60009182526020808320909101546001600160a01b0316808352600c90915260409091205490915015611f1b576001600160a01b0381166000908152600c6020908152604080832054600b90925290912054611e879163ffffffff61245716565b6001600160a01b038083166000818152600b6020908152604080832095909555600354600c909152848220548551600160e01b63d23b90a50281528a86166004820152602481019490945260448401529351939092169263d23b90a59260648084019391929182900301818387803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505050505b50600101611e0f565b600080856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7d57600080fd5b505afa158015611f91573d6000803e3d6000fd5b505050506040513d6020811015611fa757600080fd5b5051604080516001600160a01b0388811660248301528716604482015260648082018790528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd0217905290915061200990879061255a565b61201161271f565b6120655760408051600160e51b62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000866001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b50519050612104846120ff838563ffffffff61245716565b612753565b979650505050505050565b600754612141576001600160a01b0381166000908152600b60209081526040808320839055600c909152812055611630565b60035460408051600160e01b63a0821be30281526001600160a01b0384811660048301529151919092169163a0821be3916024808301926020929190829003018186803b15801561219157600080fd5b505afa1580156121a5573d6000803e3d6000fd5b505050506040513d60208110156121bb57600080fd5b50516001600160a01b0382166000908152600b602052604090208190556007546121eb919063ffffffff61276916565b6001600160a01b0382166000908152600c602052604090205550565b6000828201838110156122645760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60085460005b8181101561232a5760006008828154811061228857fe5b6000918252602080832090910154600980546001810182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03909316928317905554818452600a835260409384902055825181815292519093507fd780ddbc43f0c4efd61c5ca1bc8eeee3368abfb1f97aa7355da9f8bf8431c8ae9281900390910190a150600101612271565b5060006123386008826127dc565b5050565b600980546000919061235590600163ffffffff61245716565b8154811061235f57fe5b60009182526020808320909101546001600160a01b038581168452600a90925260408320549116925061239990600163ffffffff61245716565b905081600982815481106123a957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600a905260408082205492851682529020556009546123f6906001612457565b6124016009826127dc565b506001600160a01b0383166000818152600a6020908152604080832092909255815192835290517fe46f21bb6906b7d69a6c06d5662a2b6c1c59d134cd7b1235babdb1a70a4b436a9281900390910190a1505050565b6000828211156124b15760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0381166124ff57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061281a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61256c826001600160a01b03166127d6565b6125c05760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125fe5780518252601f1990920191602091820191016125df565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b5091509150816126b65760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115611035578080602001905160208110156126d257600080fd5b50516110355760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b6000803d8015612736576020811461273f5761274b565b6001915061274b565b60206000803e60005191505b501515905090565b60008183106127625781612264565b5090919050565b60008082116127c25760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127cd57fe5b04949350505050565b3b151590565b815481835581811115610dce57600083815260209020610dce91810190830161122291905b808211156128155760008155600101612801565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820b09be68cbc93dd6791f672fb84489172de5ab08d82093f834649ac27077dab7a0029", - "deployedBytecode": "0x6080604052600436106102045760003560e01c80639a0ba2ea11610118578063c2250a99116100a0578063f75adff81161006f578063f75adff814610713578063f7cdf47c146107a0578063f940e385146107b5578063f9f92be4146107f0578063ffa1ad741461082357610204565b8063c2250a9914610665578063e311481514610698578063e80b2b3d146106ad578063f2fde38b146106e057610204565b8063bab2af1d116100e7578063bab2af1d146105c0578063bab2f552146105f3578063bd10243014610608578063bfdce1991461061d578063c0470bb31461065057610204565b80639a0ba2ea146105395780639e45e0d014610563578063ad38bf2214610578578063b3a2af69146105ab57610204565b806370324b771161019b57806383b781881161016a57806383b781881461047a5780638da5cb5b146104c75780638f32d59b146104dc578063949813b8146104f1578063975057e71461052457610204565b806370324b77146103eb578063715018a61461042657806374c9ea821461043b5780637f03864b1461046557610204565b8063352fc85f116101d7578063352fc85f1461034f5780635bec4cb4146103955780636e553f65146103aa5780636fd689e8146103d657610204565b806305cf47441461028d57806309824a80146102d25780631e83409a14610307578063335e536c1461033a575b6003546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561023d573d6000803e3d6000fd5b506040805134815273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2005b34801561029957600080fd5b506102c0600480360360208110156102b057600080fd5b50356001600160a01b03166108ad565b60408051918252519081900360200190f35b3480156102de57600080fd5b50610305600480360360208110156102f557600080fd5b50356001600160a01b03166108bf565b005b34801561031357600080fd5b506103056004803603602081101561032a57600080fd5b50356001600160a01b0316610a4d565b34801561034657600080fd5b506102c0610dd3565b34801561035b57600080fd5b506103796004803603602081101561037257600080fd5b5035610dd9565b604080516001600160a01b039092168252519081900360200190f35b3480156103a157600080fd5b506102c0610e00565b610305600480360360408110156103c057600080fd5b50803590602001356001600160a01b0316610e06565b3480156103e257600080fd5b50610305610f87565b3480156103f757600080fd5b506102c06004803603604081101561040e57600080fd5b506001600160a01b038135811691602001351661103b565b34801561043257600080fd5b506103056110ca565b34801561044757600080fd5b506103056004803603602081101561045e57600080fd5b503561115e565b34801561047157600080fd5b506102c06111ef565b34801561048657600080fd5b506104b36004803603604081101561049d57600080fd5b506001600160a01b0381351690602001356111f5565b604080519115158252519081900360200190f35b3480156104d357600080fd5b50610379611215565b3480156104e857600080fd5b506104b3611225565b3480156104fd57600080fd5b506102c06004803603602081101561051457600080fd5b50356001600160a01b0316611236565b34801561053057600080fd5b50610379611248565b34801561054557600080fd5b506103796004803603602081101561055c57600080fd5b5035611257565b34801561056f57600080fd5b50610379611264565b34801561058457600080fd5b506103056004803603602081101561059b57600080fd5b50356001600160a01b0316611273565b3480156105b757600080fd5b506102c0611385565b3480156105cc57600080fd5b50610305600480360360208110156105e357600080fd5b50356001600160a01b0316611570565b3480156105ff57600080fd5b506102c0611633565b34801561061457600080fd5b50610379611639565b34801561062957600080fd5b506102c06004803603602081101561064057600080fd5b50356001600160a01b0316611648565b34801561065c57600080fd5b506102c061165a565b34801561067157600080fd5b506103056004803603602081101561068857600080fd5b50356001600160a01b0316611660565b3480156106a457600080fd5b506102c0611716565b3480156106b957600080fd5b506102c0600480360360208110156106d057600080fd5b50356001600160a01b031661171c565b3480156106ec57600080fd5b506103056004803603602081101561070357600080fd5b50356001600160a01b03166117be565b34801561071f57600080fd5b506103056004803603604081101561073657600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561076157600080fd5b82018360208201111561077357600080fd5b8035906020019184602083028401116401000000008311171561079557600080fd5b509092509050611811565b3480156107ac57600080fd5b50610379611849565b3480156107c157600080fd5b50610305600480360360408110156107d857600080fd5b506001600160a01b0381358116916020013516611861565b3480156107fc57600080fd5b506103056004803603602081101561081357600080fd5b50356001600160a01b0316611aee565b34801561082f57600080fd5b50610838611ccf565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561087257818101518382015260200161085a565b50505050905090810190601f16801561089f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600c6020526000908152604090205481565b6108c7611225565b6109095760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a6020526040902054156109775760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b60085460005b818110156109f957826001600160a01b03166008828154811061099c57fe5b6000918252602090912001546001600160a01b031614156109f157604051600160e51b62461bcd0281526004018080602001828103825260228152602001806128406022913960400191505060405180910390fd5b60010161097d565b5050600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0392909216919091179055565b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015610aa057600080fd5b505afa158015610ab4573d6000803e3d6000fd5b505050506040513d6020811015610aca57600080fd5b5051610b205760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e01b63fe575a870281526001600160a01b03808616600483015291518593929092169163fe575a8791602480820192602092909190829003018186803b158015610b7357600080fd5b505afa158015610b87573d6000803e3d6000fd5b505050506040513d6020811015610b9d57600080fd5b505115610bf45760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b639a4d6f3b0281526001600160a01b03868116600483015291516000939290921691639a4d6f3b91602480820192602092909190829003018186803b158015610c4857600080fd5b505afa158015610c5c573d6000803e3d6000fd5b505050506040513d6020811015610c7257600080fd5b5051905080610d295760035460408051600160e11b634d8c928d0281526001600160a01b03878116600483015291519190921691639b19251a91602480830192600092919082900301818387803b158015610ccc57600080fd5b505af1158015610ce0573d6000803e3d6000fd5b50506040805142815290516001600160a01b03881693507f7634be097aa1800f447c3ae3ffe9444f1bc44a98bd2c1e986c1883f9f645f2b692509081900360200190a250610dce565b600d548110610d825760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f7420636c61696d20666f722074686973206379636c650000000000604482015290519081900360640190fd5b610d8b84611d5c565b60065460408051918252516001600160a01b038616917f99c5ad5c5f898b30039b8cc54b8c0e6eb423e49bfc965a5999ebad131984e40d919081900360200190a2505b505050565b600d5481565b60088181548110610de657fe5b6000918252602090912001546001600160a01b0316905081565b600e5481565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610ec557348314610e845760408051600160e51b62461bcd02815260206004820152601860248201527f6d69736d617463686564206465706f7369742076616c75650000000000000000604482015290519081900360640190fd5b5060035460405134916001600160a01b03169082156108fc029083906000818181858888f19350505050158015610ebf573d6000803e3d6000fd5b50610f40565b3415610f1b5760408051600160e51b62461bcd02815260206004820152601960248201527f756e6578706563746564206574686572207472616e7366657200000000000000604482015290519081900360640190fd5b600354610f3d906001600160a01b03848116913391168663ffffffff611f2416565b90505b604080518281526001600160a01b0384166020820152815133927fea0e59b45b3d900359e312f5e429275ec827a5e4e2430e1610a1c678cd6cd2e2928290030190a2505050565b610f8f611225565b610fd15760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600360009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561102157600080fd5b505af1158015611035573d6000803e3d6000fd5b50505050565b60035460408051600160e01b6370324b770281526001600160a01b0385811660048301528481166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561109757600080fd5b505afa1580156110ab573d6000803e3d6000fd5b505050506040513d60208110156110c157600080fd5b50519392505050565b6110d2611225565b6111145760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b611166611225565b6111a85760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b600e805490829055604080518381526020810183905281517f59cbd678a801fd313f133a5efc6be7aee2814b07d41c9d9fb72f91197b2f9d4a929181900390910190a15050565b60075481565b601060209081526000928352604080842090915290825290205460ff1681565b6000546001600160a01b03165b90565b6000546001600160a01b0316331490565b600b6020526000908152604090205481565b6003546001600160a01b031681565b60098181548110610de657fe5b6002546001600160a01b031681565b61127b611225565b6112bd5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b03811661131b5760408051600160e51b62461bcd02815260206004820152601860248201527f696e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b600454604080516001600160a01b038085168252909216602083015280517fef549604431567c0cd1b94ebc91fed6cf5cd907f6ff0b63aa1d475dcf8d4901c9281900390910190a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000600f544210156113e15760408051600160e51b62461bcd02815260206004820152601b60248201527f63616e6e6f74206379636c65207965743a20746f6f206561726c790000000000604482015290519081900360640190fd5b60055443141561143b5760408051600160e51b62461bcd02815260206004820152600c60248201527f6e6f206e657720626c6f636b0000000000000000000000000000000000000000604482015290519081900360640190fd5b60095460005b8181101561147b576114736009828154811061145957fe5b6000918252602090912001546001600160a01b031661210f565b600101611441565b506005805460065543905542600d819055600e5461149f919063ffffffff61220716565b600f5560035460408051600160e11b630fe37f4702815290516001600160a01b0390921691631fc6fe8e91600480820192602092909190829003018186803b1580156114ea57600080fd5b505afa1580156114fe573d6000803e3d6000fd5b505050506040513d602081101561151457600080fd5b505160075561152161226b565b600554600654600f5460408051938452602084019290925282820152517f6611b6f4e1fb92277f863eca934cba1c2d6987070d73762b72b942720bfe43a29181900360600190a1505060055490565b611578611225565b6115ba5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600a60205260409020546116275760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b6116308161233c565b50565b60055481565b6004546001600160a01b031681565b600a6020526000908152604090205481565b600f5481565b611668611225565b6116aa5760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b60035460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156116fb57600080fd5b505af115801561170f573d6000803e3d6000fd5b5050505050565b60065481565b6001600160a01b038082166000818152600b60209081526040808320546003548251600160e01b63a0821be30281526004810196909652915193956117b895919492169263a0821be392602480840193829003018186803b15801561178057600080fd5b505afa158015611794573d6000803e3d6000fd5b505050506040513d60208110156117aa57600080fd5b50519063ffffffff61245716565b92915050565b6117c6611225565b6118085760408051600160e51b62461bcd0281526020600482018190526024820152600080516020612862833981519152604482015290519081900360640190fd5b611630816124b7565b60005b81811015611035576118418484848481811061182c57fe5b905060200201356001600160a01b0316611861565b600101611814565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b60025460408051600160e01b631cedf8a30281526001600160a01b03858116600483015291516000939290921691631cedf8a391602480820192602092909190829003018186803b1580156118b557600080fd5b505afa1580156118c9573d6000803e3d6000fd5b505050506040513d60208110156118df57600080fd5b505190506001600160a01b0381166119415760408051600160e51b62461bcd02815260206004820152601660248201527f696e76616c6964206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b6370324b770281526001600160a01b0386811660048301528581166024830152915160009392909216916370324b7791604480820192602092909190829003018186803b15801561199d57600080fd5b505afa1580156119b1573d6000803e3d6000fd5b505050506040513d60208110156119c757600080fd5b5051905080611a205760408051600160e51b62461bcd02815260206004820152601360248201527f6e6f7468696e6720746f20776974686472617700000000000000000000000000604482015290519081900360640190fd5b60035460408051600160e01b63f9ce78130281526001600160a01b03878116600483015286811660248301526044820185905285811660648301529151919092169163f9ce781391608480830192600092919082900301818387803b158015611a8857600080fd5b505af1158015611a9c573d6000803e3d6000fd5b5050604080518481526001600160a01b038781166020830152825190891694507fe1f157c0881b2e477dca89772b158029611366b8e7dc8be4f6f308fa7a0aa02893509081900390910190a250505050565b6004546001600160a01b03163314611b505760408051600160e51b62461bcd02815260206004820152600f60248201527f6e6f7420426c61636b6c69737465720000000000000000000000000000000000604482015290519081900360640190fd5b60025460408051600160e01b63c3c5a5470281526001600160a01b03808516600483015291518493929092169163c3c5a54791602480820192602092909190829003018186803b158015611ba357600080fd5b505afa158015611bb7573d6000803e3d6000fd5b505050506040513d6020811015611bcd57600080fd5b5051611c235760408051600160e51b62461bcd02815260206004820152601a60248201527f6461726b6e6f6465206973206e6f742072656769737465726564000000000000604482015290519081900360640190fd5b60035460408051600160e21b633e7e4af90281526001600160a01b0385811660048301529151919092169163f9f92be491602480830192600092919082900301818387803b158015611c7457600080fd5b505af1158015611c88573d6000803e3d6000fd5b50506040805142815290516001600160a01b03861693507fd2b847810d644004679c7a8d5f5188fe2b12b6f34dba8501760d99232fa9b7bc92509081900360200190a25050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611d545780601f10611d2957610100808354040283529160200191611d54565b820191906000526020600020905b815481529060010190602001808311611d3757829003601f168201915b505050505081565b6001600160a01b0381166000908152601060209081526040808320600654845290915290205460ff1615611dda5760408051600160e51b62461bcd02815260206004820152601660248201527f72657761726420616c726561647920636c61696d656400000000000000000000604482015290519081900360640190fd5b6001600160a01b038116600090815260106020908152604080832060065484529091528120805460ff19166001179055600954905b81811015610dce57600060098281548110611e2657fe5b60009182526020808320909101546001600160a01b0316808352600c90915260409091205490915015611f1b576001600160a01b0381166000908152600c6020908152604080832054600b90925290912054611e879163ffffffff61245716565b6001600160a01b038083166000818152600b6020908152604080832095909555600354600c909152848220548551600160e01b63d23b90a50281528a86166004820152602481019490945260448401529351939092169263d23b90a59260648084019391929182900301818387803b158015611f0257600080fd5b505af1158015611f16573d6000803e3d6000fd5b505050505b50600101611e0f565b600080856001600160a01b03166370a08231856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611f7d57600080fd5b505afa158015611f91573d6000803e3d6000fd5b505050506040513d6020811015611fa757600080fd5b5051604080516001600160a01b0388811660248301528716604482015260648082018790528251808303909101815260849091019091526020810180516001600160e01b0316600160e01b6323b872dd0217905290915061200990879061255a565b61201161271f565b6120655760408051600160e51b62461bcd02815260206004820152601360248201527f7472616e7366657246726f6d206661696c656400000000000000000000000000604482015290519081900360640190fd5b6000866001600160a01b03166370a08231866040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156120bd57600080fd5b505afa1580156120d1573d6000803e3d6000fd5b505050506040513d60208110156120e757600080fd5b50519050612104846120ff838563ffffffff61245716565b612753565b979650505050505050565b600754612141576001600160a01b0381166000908152600b60209081526040808320839055600c909152812055611630565b60035460408051600160e01b63a0821be30281526001600160a01b0384811660048301529151919092169163a0821be3916024808301926020929190829003018186803b15801561219157600080fd5b505afa1580156121a5573d6000803e3d6000fd5b505050506040513d60208110156121bb57600080fd5b50516001600160a01b0382166000908152600b602052604090208190556007546121eb919063ffffffff61276916565b6001600160a01b0382166000908152600c602052604090205550565b6000828201838110156122645760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60085460005b8181101561232a5760006008828154811061228857fe5b6000918252602080832090910154600980546001810182557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03909316928317905554818452600a835260409384902055825181815292519093507fd780ddbc43f0c4efd61c5ca1bc8eeee3368abfb1f97aa7355da9f8bf8431c8ae9281900390910190a150600101612271565b5060006123386008826127dc565b5050565b600980546000919061235590600163ffffffff61245716565b8154811061235f57fe5b60009182526020808320909101546001600160a01b038581168452600a90925260408320549116925061239990600163ffffffff61245716565b905081600982815481106123a957fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790558583168252600a905260408082205492851682529020556009546123f6906001612457565b6124016009826127dc565b506001600160a01b0383166000818152600a6020908152604080832092909255815192835290517fe46f21bb6906b7d69a6c06d5662a2b6c1c59d134cd7b1235babdb1a70a4b436a9281900390910190a1505050565b6000828211156124b15760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b0381166124ff57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061281a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b61256c826001600160a01b03166127d6565b6125c05760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106125fe5780518252601f1990920191602091820191016125df565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114612660576040519150601f19603f3d011682016040523d82523d6000602084013e612665565b606091505b5091509150816126b65760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115611035578080602001905160208110156126d257600080fd5b50516110355760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b6000803d8015612736576020811461273f5761274b565b6001915061274b565b60206000803e60005191505b501515905090565b60008183106127625781612264565b5090919050565b60008082116127c25760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b60008284816127cd57fe5b04949350505050565b3b151590565b815481835581811115610dce57600083815260209020610dce91810190830161122291905b808211156128155760008155600101612801565b509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a72305820b09be68cbc93dd6791f672fb84489172de5ab08d82093f834649ac27077dab7a0029", - "sourceMap": "458:16695:1:-;;;6463:610;8:9:-1;5:2;;;30:1;27;20:12;5:2;6463:610:1;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6463:610:1;;;;;;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;;6463:610:1;;;;;;;;;;;;;;657:6:35;:19;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;6463:610:1;;-1:-1:-1;6463:610:1;;-1:-1:-1;6463:610:1;-1:-1:-1;;;;;724:6:35;;;;;657;691:40;;657:6;;691:40;6665:18:1;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;6693:16:1;:36;;-1:-1:-1;;;;;6693:36:1;;;-1:-1:-1;;;;;;6693:36:1;;;;;;;6739:5;:29;;;;;;;;;;;;;;;6778:13;:37;;;6869:11;:24;;;;;6883:10;6869:24;;;6954:12;6939;:27;6993:15;6976:14;:32;;;7033:33;;6794:21;7033:18;;;;;;;;;;:33;;:::i;:::-;7018:12;:48;-1:-1:-1;458:16695:1;;-1:-1:-1;;;458:16695:1;834:176:34;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;458:16695:1;;;-1:-1:-1;458:16695:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8084:5;;8076:34;;-1:-1:-1;;;;;8084:5:1;;;;8100:9;8076:34;;;;;8084:5;8076:34;8084:5;8076:34;8100:9;8084:5;8076:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8125:51:1;;;8156:9;8125:51;;730:42;8125:51;;;;;;8144:10;;8125:51;;;;;;;;458:16695;2183:59;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:59:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2183:59:1;-1:-1:-1;;;;;2183:59:1;;:::i;:::-;;;;;;;;;;;;;;;;11903:376;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11903:376:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11903:376:1;-1:-1:-1;;;;;11903:376:1;;:::i;:::-;;10761:630;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10761:630:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10761:630:1;-1:-1:-1;;;;;10761:630:1;;:::i;2306:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2306:29:1;;;:::i;1501:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1501:30:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1501:30:1;;:::i;:::-;;;;-1:-1:-1;;;;;1501:30:1;;;;;;;;;;;;;;2415:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2415:28:1;;;:::i;9773:606::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9773:606:1;;;;;;-1:-1:-1;;;;;9773:606:1;;:::i;13985:89::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13985:89:1;;;:::i;8469:162::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8469:162:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8469:162:1;;;;;;;;;;:::i;1599:137:35:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1599:137:35;;;:::i;13203:234:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13203:234:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13203:234:1;;:::i;1266:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1266:25:1;;;:::i;2727:65::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2727:65:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2727:65:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;814:77:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;814:77:35;;;:::i;1165:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1165:90:35;;;:::i;2012:51:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2012:51:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2012:51:1;-1:-1:-1;;;;;2012:51:1;;:::i;967:33::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;967:33:1;;;:::i;1650:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1650:33:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1650:33:1;;:::i;779:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;779:40:1;;;:::i;12794:219::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12794:219:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12794:219:1;-1:-1:-1;;;;;12794:219:1;;:::i;8680:882::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8680:882:1;;;:::i;12487:176::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12487:176:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12487:176:1;-1:-1:-1;;;;;12487:176:1;;:::i;1135:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1135:27:1;;;:::i;1102:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1102:26:1;;;:::i;1793:55::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1793:55:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1793:55:1;-1:-1:-1;;;;;1793:55:1;;:::i;2523:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2523:27:1;;;:::i;13639:121::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13639:121:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13639:121:1;-1:-1:-1;;;;;13639:121:1;;:::i;1168:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1168:28:1;;;:::i;8299:164::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8299:164:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8299:164:1;-1:-1:-1;;;;;8299:164:1;;:::i;1885:107:35:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1885:107:35;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;7769:196:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7769:196:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;7769:196:1;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7769:196:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7769:196:1;;;;;;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;-1:-1;7769:196:1;;-1:-1:-1;7769:196:1;-1:-1:-1;7769:196:1;:::i;695:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;695:77:1;;;:::i;7287:476::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7287:476:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;7287:476:1;;;;;;;;;;:::i;11540:183::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11540:183:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11540:183:1;-1:-1:-1;;;;;11540:183:1;;:::i;579:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;579:21:1;;;:::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;579:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2183:59;;;;;;;;;;;;;:::o;11903:376::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;11979:28:1;;;;;;:20;:28;;;;;;:33;11971:70;;;;;-1:-1:-1;;;;;11971:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12070:13;:20;12051:16;12100:137;12121:11;12117:1;:15;12100:137;;;12181:6;-1:-1:-1;;;;;12161:26:1;:13;12175:1;12161:16;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12161:16:1;:26;;12153:73;;;;-1:-1:-1;;;;;12153:73:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12134:3;;12100:137;;;-1:-1:-1;;12246:13:1;27:10:-1;;39:1;23:18;;45:23;;-1:-1;12246:26:1;;;;;;;;-1:-1:-1;;;;;;12246:26:1;-1:-1:-1;;;;;12246:26:1;;;;;;;;;;11903:376::o;10761:630::-;5526:16;;:40;;;-1:-1:-1;;;;;5526:40:1;;-1:-1:-1;;;;;5526:40:1;;;;;;;;;10817:9;;5526:16;;;;;:29;;:40;;;;;;;;;;;;;;;:16;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5526:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5526:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5526:40:1;5518:79;;;;;-1:-1:-1;;;;;5518:79:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5927:5;;:30;;;-1:-1:-1;;;;;5927:30:1;;-1:-1:-1;;;;;5927:30:1;;;;;;;;;10843:9;;5927:5;;;;;:19;;:30;;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;5927:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5927:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5927:30:1;5926:31;5918:67;;;;;-1:-1:-1;;;;;5918:67:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;10890:5;;:34;;;-1:-1:-1;;;;;10890:34:1;;-1:-1:-1;;;;;10890:34:1;;;;;;;;;10864:23;;10890:5;;;;;:23;;:34;;;;;;;;;;;;;;;:5;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;10890:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10890:34:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10890:34:1;;-1:-1:-1;10994:20:1;10990:154;;11030:5;;:26;;;-1:-1:-1;;;;;11030:26:1;;-1:-1:-1;;;;;11030:26:1;;;;;;;;;:5;;;;;:15;;:26;;;;;:5;;:26;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11030:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11075:38:1;;;11109:3;11075:38;;;;-1:-1:-1;;;;;11075:38:1;;;-1:-1:-1;11075:38:1;;-1:-1:-1;11075:38:1;;;;;;;;11127:7;;;10990:154;11180:14;;11162:15;:32;11154:72;;;;;-1:-1:-1;;;;;11154:72:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;11296:31;11317:9;11296:20;:31::i;:::-;11370:13;;11342:42;;;;;;;-1:-1:-1;;;;;11342:42:1;;;;;;;;;;;;;5995:1;;5607;10761:630;;:::o;2306:29::-;;;;:::o;1501:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1501:30:1;;-1:-1:-1;1501:30:1;:::o;2415:28::-;;;;:::o;9773:606::-;9849:21;-1:-1:-1;;;;;9884:18:1;;730:42;9884:18;9880:425;;;9936:9;9926:6;:19;9918:56;;;;;-1:-1:-1;;;;;9918:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10035:5:1;;10027:34;;10004:9;;-1:-1:-1;;;;;10035:5:1;;10027:34;;;;;10004:9;;10035:5;10027:34;10035:5;10027:34;10004:9;10035:5;10027:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10027:34:1;9880:425;;;10100:9;:14;10092:52;;;;;-1:-1:-1;;;;;10092:52:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;10279:5;;10220:74;;-1:-1:-1;;;;;10220:38:1;;;;10259:10;;10279:5;10287:6;10220:74;:38;:74;:::i;:::-;10204:90;;9880:425;10319:53;;;;;;-1:-1:-1;;;;;10319:53:1;;;;;;;;10338:10;;10319:53;;;;;;;;9773:606;;;:::o;13985:89::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;14045:5:1;;;;;;;;;-1:-1:-1;;;;;14045:5:1;-1:-1:-1;;;;;14045:20:1;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14045:22:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14045:22:1;;;;13985:89::o;8469:162::-;8581:5;;:43;;;-1:-1:-1;;;;;8581:43:1;;-1:-1:-1;;;;;8581:43:1;;;;;;;;;;;;;;;;8555:7;;8581:5;;;;;:22;;:43;;;;;;;;;;;;;;;:5;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;8581:43:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8581:43:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8581:43:1;;8469:162;-1:-1:-1;;;8469:162:1:o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;13203:234:1:-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;13309:13:1;;;13332:32;;;;13379:51;;;;;;;;;;;;;;;;;;;;;;;;;1074:1:35;13203:234:1;:::o;1266:25::-;;;;:::o;2727:65::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;814:77:35:-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;2012:51:1:-;;;;;;;;;;;;;:::o;967:33::-;;;-1:-1:-1;;;;;967:33:1;;:::o;1650:::-;;;;;;;;;;779:40;;;-1:-1:-1;;;;;779:40:1;;:::o;12794:219::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;12873:19:1;;12865:56;;;;;-1:-1:-1;;;;;12865:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12965:11;;12936:41;;;-1:-1:-1;;;;;12936:41:1;;;;;12965:11;;;12936:41;;;;;;;;;;;;;;;;12987:11;:19;;-1:-1:-1;;;;;;12987:19:1;-1:-1:-1;;;;;12987:19:1;;;;;;;;;;12794:219::o;8680:882::-;8721:7;8755:12;;8748:3;:19;;8740:59;;;;;-1:-1:-1;;;;;8740:59:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8833:12;;8817;:28;;8809:53;;;;;-1:-1:-1;;;;;8809:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;8940:16;:23;8921:16;8973:101;8994:11;8990:1;:15;8973:101;;;9026:37;9043:16;9060:1;9043:19;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9043:19:1;9026:16;:37::i;:::-;9007:3;;8973:101;;;-1:-1:-1;9129:12:1;;;9113:13;:28;9166:12;9151:27;;9205:15;9188:14;:32;;;9264:13;;9245:33;;9205:15;9245:33;:18;:33;:::i;:::-;9230:12;:48;9350:5;;:31;;;-1:-1:-1;;;;;9350:31:1;;;;-1:-1:-1;;;;;9350:5:1;;;;:29;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;9350:31:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9350:31:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9350:31:1;9337:10;:44;9438:18;:16;:18::i;:::-;9484:12;;9498:13;;9513:12;;9472:54;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9543:12:1;;8680:882;:::o;12487:176::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;12565:28:1;;12596:1;12565:28;;;:20;:28;;;;;;12557:65;;;;;-1:-1:-1;;;;;12557:65:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;12632:24;12649:6;12632:16;:24::i;:::-;12487:176;:::o;1135:27::-;;;;:::o;1102:26::-;;;-1:-1:-1;;;;;1102:26:1;;:::o;1793:55::-;;;;;;;;;;;;;:::o;2523:27::-;;;;:::o;13639:121::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;13719:5:1;;:34;;;-1:-1:-1;;;;;13719:34:1;;-1:-1:-1;;;;;13719:34:1;;;;;;;;;:5;;;;;:23;;:34;;;;;:5;;:34;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;13719:34:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13719:34:1;;;;13639:121;:::o;1168:28::-;;;;:::o;8299:164::-;-1:-1:-1;;;;;8431:24:1;;;8370:7;8431:24;;;:16;:24;;;;;;;;;8396:5;;:30;;-1:-1:-1;;;;;8396:30:1;;;;;;;;;;;8370:7;;8396:60;;8431:24;;8396:5;;;:22;;:30;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;8396:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8396:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8396:30:1;;:60;:34;:60;:::i;:::-;8389:67;8299:164;-1:-1:-1;;8299:164:1:o;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;7769:196:1:-;7866:6;7861:98;7878:18;;;7861:98;;;7917:31;7926:9;7937:7;;7945:1;7937:10;;;;;;;;;;;;;-1:-1:-1;;;;;7937:10:1;7917:8;:31::i;:::-;7898:3;;7861:98;;695:77;730:42;695:77;:::o;7287:476::-;7389:16;;:44;;;-1:-1:-1;;;;;7389:44:1;;-1:-1:-1;;;;;7389:44:1;;;;;;;;;7357:29;;7389:16;;;;;:33;;:44;;;;;;;;;;;;;;;:16;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;7389:44:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7389:44:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7389:44:1;;-1:-1:-1;;;;;;7451:29:1;;7443:64;;;;;-1:-1:-1;;;;;7443:64:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7535:5;;:41;;;-1:-1:-1;;;;;7535:41:1;;-1:-1:-1;;;;;7535:41:1;;;;;;;;;;;;;;;;7518:14;;7535:5;;;;;:22;;:41;;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;7535:41:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7535:41:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7535:41:1;;-1:-1:-1;7594:10:1;7586:42;;;;;-1:-1:-1;;;;;7586:42:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;7639:5;;:56;;;-1:-1:-1;;;;;7639:56:1;;-1:-1:-1;;;;;7639:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:5;;;;;:14;;:56;;;;;:5;;:56;;;;;;;:5;;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;7639:56:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7710:46:1;;;;;;-1:-1:-1;;;;;7710:46:1;;;;;;;;;;;;;-1:-1:-1;7710:46:1;;-1:-1:-1;7710:46:1;;;;;;;;;7287:476;;;;:::o;11540:183::-;5719:11;;-1:-1:-1;;;;;5719:11:1;5734:10;5719:25;5711:53;;;;;-1:-1:-1;;;;;5711:53:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;5526:16;;:40;;;-1:-1:-1;;;;;5526:40:1;;-1:-1:-1;;;;;5526:40:1;;;;;;;;;11616:9;;5526:16;;;;;:29;;:40;;;;;;;;;;;;;;;:16;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;5526:40:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5526:40:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5526:40:1;5518:79;;;;;-1:-1:-1;;;;;5518:79:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;11637:5;;:26;;;-1:-1:-1;;;;;11637:26:1;;-1:-1:-1;;;;;11637:26:1;;;;;;;;;:5;;;;;:15;;:26;;;;;:5;;:26;;;;;;;:5;;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;11637:26:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;11678:38:1;;;11712:3;11678:38;;;;-1:-1:-1;;;;;11678:38:1;;;-1:-1:-1;11678:38:1;;-1:-1:-1;11678:38:1;;;;;;;;5774:1;11540:183;:::o;579:21::-;;;;;;;;;;;;;;;-1:-1:-1;;579:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14358:712::-;-1:-1:-1;;;;;14434:24:1;;;;;;:13;:24;;;;;;;;14459:13;;14434:39;;;;;;;;;;14433:40;14425:75;;;;;-1:-1:-1;;;;;14425:75:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14510:24:1;;;;;;:13;:24;;;;;;;;14535:13;;14510:39;;;;;;;:46;;-1:-1:-1;;14510:46:1;14552:4;14510:46;;;14585:16;:23;;14618:446;14639:11;14635:1;:15;14618:446;;;14671:13;14687:16;14704:1;14687:19;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14687:19:1;14799:31;;;:24;:31;;;;;;;;14687:19;;-1:-1:-1;14799:35:1;14795:259;;-1:-1:-1;;;;;14908:31:1;;;;;;:24;:31;;;;;;;;;14880:16;:23;;;;;;;:60;;;:27;:60;:::i;:::-;-1:-1:-1;;;;;14854:23:1;;;;;;;:16;:23;;;;;;;;:86;;;;14958:5;;15007:24;:31;;;;;;;14958:81;;-1:-1:-1;;;;;14958:81:1;;;;;;;;;;;;;;;;;;;;;;:5;;;;;:30;;:81;;;;;14854:23;;14958:81;;;;;;14854:23;14958:5;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;14958:81:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14958:81:1;;;;14795:259;-1:-1:-1;14652:3:1;;14618:446;;1461:465:14;1568:7;1587:22;1612:5;-1:-1:-1;;;;;1612:15:14;;1628:2;1612:19;;;;;;;;;;;;;-1:-1:-1;;;;;1612:19:14;-1:-1:-1;;;;;1612:19:14;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1612:19:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1612:19:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1612:19:14;1667:68;;;-1:-1:-1;;;;;1667:68:14;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1667:68:14;;;;;;;1612:19;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;1612:19:14;;-1:-1:-1;1641:95:14;;1660:5;;1641:18;:95::i;:::-;1754:21;:19;:21::i;:::-;1746:53;;;;;-1:-1:-1;;;;;1746:53:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1809:21;1833:5;-1:-1:-1;;;;;1833:15:14;;1849:2;1833:19;;;;;;;;;;;;;-1:-1:-1;;;;;1833:19:14;-1:-1:-1;;;;;1833:19:14;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1833:19:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1833:19:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1833:19:14;;-1:-1:-1;1869:50:14;1878:5;1885:33;1833:19;1903:14;1885:33;:17;:33;:::i;:::-;1869:8;:50::i;:::-;1862:57;1461:465;-1:-1:-1;;;;;;;1461:465:14:o;15245:441:1:-;15309:10;;15305:375;;-1:-1:-1;;;;;15340:24:1;;15367:1;15340:24;;;:16;:24;;;;;;;;:28;;;15382:24;:32;;;;;:36;15305:375;;;15550:5;;:30;;;-1:-1:-1;;;;;15550:30:1;;-1:-1:-1;;;;;15550:30:1;;;;;;;;;:5;;;;;:22;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;15550:30:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15550:30:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15550:30:1;-1:-1:-1;;;;;15523:24:1;;;;;;:16;15550:30;15523:24;;;;:57;;;15658:10;;15629:40;;15550:30;15629:40;:28;:40;:::i;:::-;-1:-1:-1;;;;;15594:32:1;;;;;;:24;:32;;;;;:75;15245:441;:::o;834:176:34:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;16739:411:1:-;16831:13;:20;16812:16;16861:249;16882:11;16878:1;:15;16861:249;;;16914:13;16930;16944:1;16930:16;;;;;;;;;;;;;;;;;;;;16960;27:10:-1;;16930:16:1;23:18:-1;;45:23;;16960:28:1;;;;-1:-1:-1;;;;;;16960:28:1;-1:-1:-1;;;;;16930:16:1;;;16960:28;;;;;17032:23;17002:27;;;:20;:27;;;;;;;:53;17074:25;;;;;;;16930:16;;-1:-1:-1;17074:25:1;;;;;;;;;;-1:-1:-1;16895:3:1;;16861:249;;;-1:-1:-1;17142:1:1;17119:24;:13;17142:1;17119:24;:::i;:::-;;16739:411;:::o;15862:688::-;15942:16;15959:23;;15922:17;;15942:16;15959:30;;15987:1;15959:30;:27;:30;:::i;:::-;15942:48;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16028:28:1;;;;;:20;:28;;;;;;;15942:48;;;-1:-1:-1;16028:35:1;;15942:48;16028:35;:32;:35;:::i;:::-;16000:63;;16185:9;16147:16;16164:17;16147:35;;;;;;;;;;;;;;;;;;;;:47;;-1:-1:-1;;;;;;16147:47:1;-1:-1:-1;;;;;16147:47:1;;;;;;16238:28;;;;;:20;:28;;;;;;;16204:31;;;;;;;:62;16427:16;:23;:30;;-1:-1:-1;16427:27:1;:30::i;:::-;16401:56;:16;:56;;:::i;:::-;-1:-1:-1;;;;;;16467:28:1;;16498:1;16467:28;;;:20;:28;;;;;;;;:32;;;;16515:28;;;;;;;;;;;;;;;;;15862:688;;;:::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;2093:225:35:-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o;3398:930:14:-;3941:27;3949:5;-1:-1:-1;;;;;3941:25:14;;:27::i;:::-;3933:55;;;;;-1:-1:-1;;;;;3933:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:12;4073:23;4108:5;-1:-1:-1;;;;;4100:19:14;4120:4;4100:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4100:25:14;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4058:67:14;;;;4143:7;4135:37;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;;;;4187:17;;:21;4183:139;;4270:10;4259:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4259:30:14;4251:60;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;;;4505:810;4558:4;;4770:14;4855:54;;;;4979:2;4974:220;;;;4763:503;;4855:54;4894:1;4880:15;;4855:54;;4974:220;5080:2;5077:1;5074;5059:24;5178:1;5172:8;5158:22;;4763:503;-1:-1:-1;5293:15:14;;;-1:-1:-1;4505:810:14;:::o;358:104:33:-;416:7;446:1;442;:5;:13;;454:1;442:13;;;-1:-1:-1;450:1:33;;435:20;-1:-1:-1;358:104:33:o;2606:326:34:-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:34:o;542:413:41:-;902:20;940:8;;;542:413::o;458:16695:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\nimport \"../libraries/CompatibleERC20Functions.sol\";\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\nimport \"./DarknodePaymentStore.sol\";\n\n/// @notice DarknodePayment is responsible for paying off darknodes for their\n/// computation.\ncontract DarknodePayment is Ownable {\n using SafeMath for uint256;\n using CompatibleERC20Functions for ERC20;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice The special address for Ether.\n address constant public ETHEREUM = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n DarknodeRegistry public darknodeRegistry; // Passed in as a constructor parameter.\n\n /// @notice DarknodePaymentStore is the storage contract for darknode\n /// payments.\n DarknodePaymentStore public store; // Passed in as a constructor parameter.\n\n /// @notice The address that can call blacklist()\n address public blacklister;\n\n uint256 public currentCycle;\n uint256 public previousCycle;\n\n /// @notice The number of whitelisted darknodes this cycle\n uint256 public shareCount;\n\n /// @notice The list of tokens that will be registered next cycle.\n /// We only update the shareCount at the change of cycle to\n /// prevent the number of shares from changing.\n address[] public pendingTokens;\n\n /// @notice The list of tokens which are already registered and rewards can\n /// be claimed for.\n address[] public registeredTokens;\n\n /// @notice Mapping from token -> index. Index starts from 1. 0 means not in\n /// list.\n mapping(address => uint256) public registeredTokenIndex;\n\n /// @notice Mapping from token -> amount.\n /// The amount of rewards allocated for all darknodes to claim into\n /// their account.\n mapping(address => uint256) public unclaimedRewards;\n\n /// @notice Mapping from token -> amount.\n /// The amount of rewards allocated for each darknode.\n mapping(address => uint256) public previousCycleRewardShare;\n\n /// @notice The time that the current cycle started.\n uint256 public cycleStartTime;\n\n /// @notice The minimum duration that the current cycle must go for.\n uint256 public cycleDuration;\n\n /// @notice The earliest timestamp that changeCycle() can be called.\n uint256 public cycleTimeout;\n\n /// @notice Mapping of darknode -> cycle -> already_claimed\n /// Used to keep track of which darknodes have already claimed their\n /// rewards.\n mapping(address => mapping(uint256 => bool)) public rewardClaimed;\n\n /// @notice Emitted when a darknode is blacklisted from receiving rewards\n /// @param _darknode The address of the darknode which was blacklisted\n /// @param _time The time at which the darknode was blacklisted\n event LogDarknodeBlacklisted(address indexed _darknode, uint256 _time);\n\n /// @notice Emitted when a darknode is whitelisted to receive rewards\n /// @param _darknode The address of the darknode which was whitelisted\n /// @param _time The time at which the darknode was whitelisted\n event LogDarknodeWhitelisted(address indexed _darknode, uint256 _time);\n\n /// @notice Emitted when a darknode claims their share of reward\n /// @param _darknode The darknode which claimed\n /// @param _cycle The cycle that the darknode claimed for\n event LogDarknodeClaim(address indexed _darknode, uint256 _cycle);\n\n /// @notice Emitted when someone pays the DarknodePayment contract\n /// @param _payer The darknode which claimed\n /// @param _amount The cycle that the darknode claimed for\n /// @param _token The address of the token that was transferred\n event LogPaymentReceived(address indexed _payer, uint256 _amount, address _token);\n\n /// @notice Emitted when a darknode calls withdraw\n /// @param _payee The address of the darknode which withdrew\n /// @param _value The amount of DAI withdrawn\n /// @param _token The address of the token that was withdrawn\n event LogDarknodeWithdrew(address indexed _payee, uint256 _value, address _token);\n\n /// @notice Emitted when a new cycle happens\n /// @param _newCycle The new, current cycle\n /// @param _lastCycle The previous cycle\n /// @param _cycleTimeout The earliest a new cycle can be called\n event LogNewCycle(uint256 _newCycle, uint256 _lastCycle, uint256 _cycleTimeout);\n\n /// @notice Emitted when the cycle duration changes\n /// @param _newDuration The new duration\n /// @param _oldDuration The old duration\n event LogCycleDurationChanged(uint256 _newDuration, uint256 _oldDuration);\n\n /// @notice Emitted when the Blacklister contract changes\n /// @param _newBlacklister The new Blacklister\n /// @param _oldBlacklister The old Blacklister\n event LogBlacklisterChanged(address _newBlacklister, address _oldBlacklister);\n\n /// @notice Emitted when a new token is registered\n /// @param _token The token that was registered\n event LogTokenRegistered(address _token);\n\n /// @notice Emitted when a token is deregistered\n /// @param _token The token that was deregistered\n event LogTokenDeregistered(address _token);\n\n /// @notice Restrict a function registered dark nodes to call a function.\n modifier onlyDarknode(address _darknode) {\n require(darknodeRegistry.isRegistered(_darknode), \"darknode is not registered\");\n _;\n }\n\n /// @notice Restrict a function the blacklister.\n modifier onlyBlacklister() {\n require(blacklister == msg.sender, \"not Blacklister\");\n _;\n }\n\n /// @notice Restrict a function darknodes which haven't been blacklisted\n modifier notBlacklisted(address _darknode) {\n require(!store.isBlacklisted(_darknode), \"darknode is blacklisted\");\n _;\n }\n\n /// @notice The contract constructor. Starts the current cycle using the\n /// time of deploy.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _darknodeRegistry The address of the DarknodeRegistry contract\n /// @param _darknodePaymentStore The address of the DarknodePaymentStore\n /// contract\n /// @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds\n constructor(\n string memory _VERSION,\n DarknodeRegistry _darknodeRegistry,\n DarknodePaymentStore _darknodePaymentStore,\n uint256 _cycleDurationSeconds\n ) public {\n VERSION = _VERSION;\n darknodeRegistry = _darknodeRegistry;\n store = _darknodePaymentStore;\n cycleDuration = _cycleDurationSeconds;\n // Default the blacklister to owner\n blacklister = msg.sender;\n\n // Start the current cycle\n currentCycle = block.number;\n cycleStartTime = block.timestamp;\n cycleTimeout = cycleStartTime.add(cycleDuration);\n }\n\n /// @notice Transfers the funds allocated to the darknode to the darknode\n /// owner.\n ///\n /// @param _darknode The address of the darknode\n /// @param _token Which token to transfer\n function withdraw(address _darknode, address _token) public {\n address payable darknodeOwner = darknodeRegistry.getDarknodeOwner(_darknode);\n require(darknodeOwner != address(0x0), \"invalid darknode owner\");\n\n uint256 amount = store.darknodeBalances(_darknode, _token);\n require(amount > 0, \"nothing to withdraw\");\n\n store.transfer(_darknode, _token, amount, darknodeOwner);\n emit LogDarknodeWithdrew(_darknode, amount, _token);\n }\n\n function withdrawMultiple(address _darknode, address[] calldata _tokens) external {\n for (uint i = 0; i < _tokens.length; i++) {\n withdraw(_darknode, _tokens[i]);\n }\n }\n\n /// @notice Forward all payments to the DarknodePaymentStore.\n function () external payable {\n address(store).transfer(msg.value);\n emit LogPaymentReceived(msg.sender, msg.value, ETHEREUM);\n }\n\n /// @notice The current balance of the contract available as reward for the\n /// current cycle\n function currentCycleRewardPool(address _token) external view returns (uint256) {\n return store.availableBalance(_token).sub(unclaimedRewards[_token]);\n }\n\n function darknodeBalances(address _darknodeID, address _token) external view returns (uint256) {\n return store.darknodeBalances(_darknodeID, _token);\n }\n\n /// @notice Changes the current cycle.\n function changeCycle() external returns (uint256) {\n require(now >= cycleTimeout, \"cannot cycle yet: too early\");\n require(block.number != currentCycle, \"no new block\");\n\n // Snapshot balances for the past cycle\n uint arrayLength = registeredTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n _snapshotBalance(registeredTokens[i]);\n }\n\n // Start a new cycle\n previousCycle = currentCycle;\n currentCycle = block.number;\n cycleStartTime = block.timestamp;\n cycleTimeout = cycleStartTime.add(cycleDuration);\n\n // Update the share size for next cycle\n shareCount = store.darknodeWhitelistLength();\n // Update the list of registeredTokens\n _updateTokenList();\n\n emit LogNewCycle(currentCycle, previousCycle, cycleTimeout);\n return currentCycle;\n }\n\n /// @notice Deposits token into the contract to be paid to the Darknodes\n ///\n /// @param _value The amount of token deposit in the token's smallest unit.\n /// @param _token The token address\n function deposit(uint256 _value, address _token) external payable {\n uint256 receivedValue;\n if (_token == ETHEREUM) {\n require(_value == msg.value, \"mismatched deposit value\");\n receivedValue = msg.value;\n address(store).transfer(msg.value);\n } else {\n require(msg.value == 0, \"unexpected ether transfer\");\n // Forward the funds to the store\n receivedValue = ERC20(_token).safeTransferFromWithFees(msg.sender, address(store), _value);\n }\n emit LogPaymentReceived(msg.sender, receivedValue, _token);\n }\n\n /// @notice Claims the rewards allocated to the darknode last cycle and\n /// increments the darknode balances. Whitelists the darknode if it\n /// hasn't already been whitelisted. If a darknode does not call\n /// claim() then the rewards for the previous cycle is lost.\n ///\n /// @param _darknode The address of the darknode to claim\n function claim(address _darknode) external onlyDarknode(_darknode) notBlacklisted(_darknode) {\n uint256 whitelistedTime = store.darknodeWhitelist(_darknode);\n\n // The darknode hasn't been whitelisted before\n if (whitelistedTime == 0) {\n store.whitelist(_darknode);\n emit LogDarknodeWhitelisted(_darknode, now);\n return;\n }\n\n require(whitelistedTime < cycleStartTime, \"cannot claim for this cycle\");\n\n // Claim share of rewards allocated for last cycle\n _claimDarknodeReward(_darknode);\n emit LogDarknodeClaim(_darknode, previousCycle);\n }\n\n /// @notice Blacklists a darknode from participating in rewards.\n ///\n /// @param _darknode The address of the darknode to blacklist\n function blacklist(address _darknode) external onlyBlacklister onlyDarknode(_darknode) {\n store.blacklist(_darknode);\n emit LogDarknodeBlacklisted(_darknode, now);\n }\n\n /// @notice Adds tokens to be payable. Registration is pending until next\n /// cycle.\n ///\n /// @param _token The address of the token to be registered.\n function registerToken(address _token) external onlyOwner {\n require(registeredTokenIndex[_token] == 0, \"token already registered\");\n uint arrayLength = pendingTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n require(pendingTokens[i] != _token, \"token already pending registration\");\n }\n pendingTokens.push(_token);\n }\n\n /// @notice Removes a token from the list of supported tokens.\n /// Deregistration is pending until next cycle.\n ///\n /// @param _token The address of the token to be deregistered.\n function deregisterToken(address _token) external onlyOwner {\n require(registeredTokenIndex[_token] > 0, \"token not registered\");\n _deregisterToken(_token);\n }\n\n /// @notice Updates the Blacklister contract address.\n ///\n /// @param _addr The new Blacklister contract address.\n function updateBlacklister(address _addr) external onlyOwner {\n require(_addr != address(0), \"invalid contract address\");\n emit LogBlacklisterChanged(_addr, blacklister);\n blacklister = _addr;\n }\n\n /// @notice Updates cycle duration\n ///\n /// @param _durationSeconds The amount of time (in seconds) that should have\n /// passed before a new cycle can be called.\n function updateCycleDuration(uint256 _durationSeconds) external onlyOwner {\n uint256 oldDuration = cycleDuration;\n cycleDuration = _durationSeconds;\n emit LogCycleDurationChanged(cycleDuration, oldDuration);\n }\n\n /// @notice Allows the contract owner to initiate an ownership transfer of\n /// the DarknodePaymentStore.\n ///\n /// @param _newOwner The address to transfer the ownership to.\n function transferStoreOwnership(address _newOwner) external onlyOwner {\n store.transferOwnership(_newOwner);\n }\n\n /// @notice Claims ownership of the store passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called when\n /// transferring from another DarknodePaymentStore.\n function claimStoreOwnership() external onlyOwner {\n store.claimOwnership();\n }\n\n /// @notice Claims the darknode reward for all registered tokens into\n /// darknodeBalances in the DarknodePaymentStore.\n /// Rewards can only be claimed once per cycle.\n ///\n /// @param _darknode The address to the darknode to claim rewards for\n function _claimDarknodeReward(address _darknode) private {\n require(!rewardClaimed[_darknode][previousCycle], \"reward already claimed\");\n rewardClaimed[_darknode][previousCycle] = true;\n uint arrayLength = registeredTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n address token = registeredTokens[i];\n\n // Only increment balance if shares were allocated last cycle\n if (previousCycleRewardShare[token] > 0) {\n unclaimedRewards[token] = unclaimedRewards[token].sub(previousCycleRewardShare[token]);\n store.incrementDarknodeBalance(_darknode, token, previousCycleRewardShare[token]);\n }\n }\n }\n\n /// @notice Snapshots the current balance of the tokens, for all registered\n /// tokens.\n ///\n /// @param _token The address the token to snapshot.\n function _snapshotBalance(address _token) private {\n if (shareCount == 0) {\n unclaimedRewards[_token] = 0;\n previousCycleRewardShare[_token] = 0;\n } else {\n // Lock up the current balance for darknode reward allocation\n unclaimedRewards[_token] = store.availableBalance(_token);\n previousCycleRewardShare[_token] = unclaimedRewards[_token].div(shareCount);\n }\n }\n\n /// @notice Deregisters a token, removing it from the list of\n /// registeredTokens.\n ///\n /// @param _token The address of the token to deregister.\n function _deregisterToken(address _token) private {\n address lastToken = registeredTokens[registeredTokens.length.sub(1)];\n uint256 deletedTokenIndex = registeredTokenIndex[_token].sub(1);\n // Move the last token to _token's position and update it's index\n registeredTokens[deletedTokenIndex] = lastToken;\n registeredTokenIndex[lastToken] = registeredTokenIndex[_token];\n // Decreasing the length will clean up the storage for us\n // So we don't need to manually delete the element\n registeredTokens.length = registeredTokens.length.sub(1);\n registeredTokenIndex[_token] = 0;\n\n emit LogTokenDeregistered(_token);\n }\n\n /// @notice Updates the list of registeredTokens adding tokens that are to be registered.\n /// The list of tokens that are pending registration are emptied afterwards.\n function _updateTokenList() private {\n // Register tokens\n uint arrayLength = pendingTokens.length;\n for (uint i = 0; i < arrayLength; i++) {\n address token = pendingTokens[i];\n registeredTokens.push(token);\n registeredTokenIndex[token] = registeredTokens.length;\n emit LogTokenRegistered(token);\n }\n pendingTokens.length = 0;\n }\n\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "exportedSymbols": { - "DarknodePayment": [ - 959 - ] - }, - "id": 960, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 13, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7646, - "src": "25:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 14, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7535, - "src": "89:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 15, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 8043, - "src": "149:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 16, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 4811, - "src": "214:51:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 17, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 2391, - "src": "266:50:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "file": "./DarknodePaymentStore.sol", - "id": 18, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 1288, - "src": "317:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 20, - "nodeType": "InheritanceSpecifier", - "src": "486:7:1" - } - ], - "contractDependencies": [ - 7645 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePayment is responsible for paying off darknodes for their\n computation.", - "fullyImplemented": true, - "id": 959, - "linearizedBaseContracts": [ - 959, - 7645 - ], - "name": "DarknodePayment", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 23, - "libraryName": { - "contractScope": null, - "id": 21, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "506:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "500:27:1", - "typeName": { - "id": 22, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 26, - "libraryName": { - "contractScope": null, - "id": 24, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4810, - "src": "538:24:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4810", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "532:41:1", - "typeName": { - "contractScope": null, - "id": 25, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8042, - "src": "567:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 28, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "579:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 27, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "695:77:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:42:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 33, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "779:40:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 32, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "779:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 35, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "967:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 34, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "967:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 37, - "name": "blacklister", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1102:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "currentCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1135:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 38, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 41, - "name": "previousCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1168:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1168:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "shareCount", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1266:25:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "pendingTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1501:30:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 45, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1501:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "registeredTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1650:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 48, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1650:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "registeredTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1793:55:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1793:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 51, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 57, - "name": "unclaimedRewards", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2012:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 56, - "keyType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2012:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 55, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 61, - "name": "previousCycleRewardShare", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2183:59:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 60, - "keyType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2183:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 59, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 63, - "name": "cycleStartTime", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2306:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 62, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 65, - "name": "cycleDuration", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2415:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 67, - "name": "cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2523:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 66, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2523:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 73, - "name": "rewardClaimed", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2727:65:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "typeName": { - "id": 72, - "keyType": { - "id": 68, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2735:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2727:44:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "valueType": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2746:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 70, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is blacklisted from receiving rewards\n @param _darknode The address of the darknode which was blacklisted\n @param _time The time at which the darknode was blacklisted", - "id": 79, - "name": "LogDarknodeBlacklisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3049:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3076:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3048:42:1" - }, - "src": "3020:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is whitelisted to receive rewards\n @param _darknode The address of the darknode which was whitelisted\n @param _time The time at which the darknode was whitelisted", - "id": 85, - "name": "LogDarknodeWhitelisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3343:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 83, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3370:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3342:42:1" - }, - "src": "3314:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode claims their share of reward\n @param _darknode The darknode which claimed\n @param _cycle The cycle that the darknode claimed for", - "id": 91, - "name": "LogDarknodeClaim", - "nodeType": "EventDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3597:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 86, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3597:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "indexed": false, - "name": "_cycle", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3624:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:43:1" - }, - "src": "3574:66:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when someone pays the DarknodePayment contract\n @param _payer The darknode which claimed\n @param _amount The cycle that the darknode claimed for\n @param _token The address of the token that was transferred", - "id": 99, - "name": "LogPaymentReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "indexed": true, - "name": "_payer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3922:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3946:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 94, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3963:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 96, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3963:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:57:1" - }, - "src": "3897:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode calls withdraw\n @param _payee The address of the darknode which withdrew\n @param _value The amount of DAI withdrawn\n @param _token The address of the token that was withdrawn", - "id": 107, - "name": "LogDarknodeWithdrew", - "nodeType": "EventDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "indexed": true, - "name": "_payee", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4247:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4247:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4287:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:56:1" - }, - "src": "4221:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new cycle happens\n @param _newCycle The new, current cycle\n @param _lastCycle The previous cycle\n @param _cycleTimeout The earliest a new cycle can be called", - "id": 115, - "name": "LogNewCycle", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "indexed": false, - "name": "_newCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4537:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4537:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "indexed": false, - "name": "_lastCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4556:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4556:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4576:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4576:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4536:62:1" - }, - "src": "4519:80:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the cycle duration changes\n @param _newDuration The new duration\n @param _oldDuration The old duration", - "id": 121, - "name": "LogCycleDurationChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "indexed": false, - "name": "_newDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4781:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "indexed": false, - "name": "_oldDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4803:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4780:44:1" - }, - "src": "4751:74:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the Blacklister contract changes\n @param _newBlacklister The new Blacklister\n @param _oldBlacklister The old Blacklister", - "id": 127, - "name": "LogBlacklisterChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "indexed": false, - "name": "_newBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5023:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "indexed": false, - "name": "_oldBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5048:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5048:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5022:50:1" - }, - "src": "4995:78:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new token is registered\n @param _token The token that was registered", - "id": 131, - "name": "LogTokenRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "5211:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5211:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5210:16:1" - }, - "src": "5186:41:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a token is deregistered\n @param _token The token that was deregistered", - "id": 135, - "name": "LogTokenDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "5367:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5366:16:1" - }, - "src": "5340:43:1" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "5508:107:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 142, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "5556:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 140, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "5526:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 2178, - "src": "5526:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f6465206973206e6f742072656769737465726564", - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:28:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - }, - "value": "darknode is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - } - ], - "id": 139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5518:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "5518:79:1" - }, - { - "id": 147, - "nodeType": "PlaceholderStatement", - "src": "5607:1:1" - } - ] - }, - "documentation": "@notice Restrict a function registered dark nodes to call a function.", - "id": 149, - "name": "onlyDarknode", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 137, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "5489:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5488:19:1" - }, - "src": "5467:148:1", - "visibility": "internal" - }, - { - "body": { - "id": 160, - "nodeType": "Block", - "src": "5701:81:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 152, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "5719:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "5734:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5719:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420426c61636b6c6973746572", - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5746:17:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - }, - "value": "not Blacklister" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - } - ], - "id": 151, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5711:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5711:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 158, - "nodeType": "ExpressionStatement", - "src": "5711:53:1" - }, - { - "id": 159, - "nodeType": "PlaceholderStatement", - "src": "5774:1:1" - } - ] - }, - "documentation": "@notice Restrict a function the blacklister.", - "id": 161, - "name": "onlyBlacklister", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 150, - "nodeType": "ParameterList", - "parameters": [], - "src": "5698:2:1" - }, - "src": "5674:108:1", - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "5908:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5926:31:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5947:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 166, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "5927:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isBlacklisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1027, - "src": "5927:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5927:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:25:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "5918:67:1" - }, - { - "id": 174, - "nodeType": "PlaceholderStatement", - "src": "5995:1:1" - } - ] - }, - "documentation": "@notice Restrict a function darknodes which haven't been blacklisted", - "id": 176, - "name": "notBlacklisted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "5889:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5889:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5888:19:1" - }, - "src": "5865:138:1", - "visibility": "internal" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "6655:418:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 187, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "6665:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 188, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "6675:8:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6665:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "6665:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 191, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "6693:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 192, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6712:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "6693:36:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "6693:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 195, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "6739:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 196, - "name": "_darknodePaymentStore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "6747:21:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "src": "6739:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 198, - "nodeType": "ExpressionStatement", - "src": "6739:29:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 199, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "6778:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 200, - "name": "_cycleDurationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6794:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6778:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "6778:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 203, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "6869:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 204, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "6883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6869:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "6869:24:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 208, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "6939:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6939:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 212, - "nodeType": "ExpressionStatement", - "src": "6939:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 213, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "6976:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 214, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "6993:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6993:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6976:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "6976:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7018:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 221, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "7052:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 219, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "7033:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "7033:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7033:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7018:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 224, - "nodeType": "ExpressionStatement", - "src": "7018:48:1" - } - ] - }, - "documentation": "@notice The contract constructor. Starts the current cycle using the\n time of deploy.\n\n /// @param _VERSION A string defining the contract version.\n @param _darknodeRegistry The address of the DarknodeRegistry contract\n @param _darknodePaymentStore The address of the DarknodePaymentStore\n contract\n @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds", - "id": 226, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6484:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 177, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6484:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 180, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6516:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 179, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "6516:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "name": "_darknodePaymentStore", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6560:42:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 181, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "6560:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "name": "_cycleDurationSeconds", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6612:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6474:173:1" - }, - "returnParameters": { - "id": 186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6655:0:1" - }, - "scope": 959, - "src": "6463:610:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "7347:416:1", - "statements": [ - { - "assignments": [ - 234 - ], - "declarations": [ - { - "constant": false, - "id": 234, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7357:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7357:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 237, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7423:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 235, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "7389:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDarknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1934, - "src": "7389:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7389:44:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7357:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7451:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7468:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7451:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206461726b6e6f6465206f776e6572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - }, - "value": "invalid darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "7443:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7443:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "7443:64:1" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7518:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 253, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7558:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 251, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7535:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "7535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7535:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7518:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7603:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7594:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7468696e6720746f207769746864726177", - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7606:21:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - }, - "value": "nothing to withdraw" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - } - ], - "id": 257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "7586:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7586:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 263, - "nodeType": "ExpressionStatement", - "src": "7586:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 267, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7654:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 268, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7665:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7673:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7681:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 264, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7639:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1286, - "src": "7639:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,address,uint256,address payable) external" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7639:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "7639:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 274, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7730:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7741:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7749:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 273, - "name": "LogDarknodeWithdrew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7710:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7710:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 278, - "nodeType": "EmitStatement", - "src": "7705:51:1" - } - ] - }, - "documentation": "@notice Transfers the funds allocated to the darknode to the darknode\n owner.\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer", - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7305:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7305:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7324:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7324:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7304:35:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "7347:0:1" - }, - "scope": 959, - "src": "7287:476:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 308, - "nodeType": "Block", - "src": "7851:114:1", - "statements": [ - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "7903:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 300, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7926:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7937:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 303, - "indexExpression": { - "argumentTypes": null, - "id": 302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7945:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7917:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7917:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 305, - "nodeType": "ExpressionStatement", - "src": "7917:31:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 292, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 293, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7882:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7878:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 307, - "initializationExpression": { - "assignments": [ - 289 - ], - "declarations": [ - { - "constant": false, - "id": 289, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "7866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 291, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7898:3:1", - "subExpression": { - "argumentTypes": null, - "id": 296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7898:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "7898:3:1" - }, - "nodeType": "ForStatement", - "src": "7861:98:1" - } - ] - }, - "documentation": null, - "id": 309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawMultiple", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7795:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7795:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7814:26:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7814:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 284, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7814:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7794:47:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [], - "src": "7851:0:1" - }, - "scope": 959, - "src": "7769:196:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 328, - "nodeType": "Block", - "src": "8066:117:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 316, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "8100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8084:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8076:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 319, - "nodeType": "ExpressionStatement", - "src": "8076:34:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 321, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "8144:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8144:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 323, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "8156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8156:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 325, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "8167:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 320, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8125:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 327, - "nodeType": "EmitStatement", - "src": "8120:56:1" - } - ] - }, - "documentation": "@notice Forward all payments to the DarknodePaymentStore.", - "id": 329, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [], - "src": "8046:2:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "8066:0:1" - }, - "scope": 959, - "src": "8037:146:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 346, - "nodeType": "Block", - "src": "8379:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 341, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "8431:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 343, - "indexExpression": { - "argumentTypes": null, - "id": 342, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8448:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8431:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 338, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 336, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8396:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "8396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "8396:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 335, - "id": 345, - "nodeType": "Return", - "src": "8389:67:1" - } - ] - }, - "documentation": "@notice The current balance of the contract available as reward for the\n current cycle", - "id": 347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCycleRewardPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 331, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8331:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8330:16:1" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8370:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8369:9:1" - }, - "scope": 959, - "src": "8299:164:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "8564:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 349, - "src": "8604:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 359, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 351, - "src": "8617:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 356, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "8581:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8581:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 355, - "id": 361, - "nodeType": "Return", - "src": "8574:50:1" - } - ] - }, - "documentation": null, - "id": 363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "darknodeBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 349, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8495:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8495:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 351, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8516:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8516:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8494:37:1" - }, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8555:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8555:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8554:9:1" - }, - "scope": 959, - "src": "8469:162:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 444, - "nodeType": "Block", - "src": "8730:832:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 370, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "8755:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8748:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f74206379636c65207965743a20746f6f206561726c79", - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8769:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - }, - "value": "cannot cycle yet: too early" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - } - ], - "id": 368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "8740:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:59:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 374, - "nodeType": "ExpressionStatement", - "src": "8740:59:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8817:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 378, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "8833:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8817:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f206e657720626c6f636b", - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8847:14:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - }, - "value": "no new block" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - } - ], - "id": 375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "8809:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8809:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8809:53:1" - }, - { - "assignments": [ - 384 - ], - "declarations": [ - { - "constant": false, - "id": 384, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "8921:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 387, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 385, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8940:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8921:42:1" - }, - { - "body": { - "id": 404, - "nodeType": "Block", - "src": "9012:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 399, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "9043:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 401, - "indexExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9060:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9043:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 398, - "name": "_snapshotBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "9026:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9026:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "9026:37:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "8990:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 393, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "8994:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8990:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 405, - "initializationExpression": { - "assignments": [ - 389 - ], - "declarations": [ - { - "constant": false, - "id": 389, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "8978:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8978:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9007:3:1", - "subExpression": { - "argumentTypes": null, - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9007:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "9007:3:1" - }, - "nodeType": "ForStatement", - "src": "8973:101:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 406, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9113:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 407, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9129:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9113:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "9113:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 410, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9151:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 411, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "9166:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9166:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9151:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "9151:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 415, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9188:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 416, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "9205:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9205:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9188:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "nodeType": "ExpressionStatement", - "src": "9188:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 420, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9230:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 423, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9245:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "9245:18:1", - "typeDescriptions": { - "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": "9245:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9230:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9230:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "9337:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 428, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "9350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelistLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 981, - "src": "9350:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9350:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9337:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "9337:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 433, - "name": "_updateTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "9438:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9438:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9438:18:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9484:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9498:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 439, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9513:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 436, - "name": "LogNewCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "9472:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 441, - "nodeType": "EmitStatement", - "src": "9467:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 442, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9543:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 367, - "id": 443, - "nodeType": "Return", - "src": "9536:19:1" - } - ] - }, - "documentation": "@notice Changes the current cycle.", - "id": 445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeCycle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 364, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:2:1" - }, - "returnParameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "8721:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8720:9:1" - }, - "scope": 959, - "src": "8680:882:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 511, - "nodeType": "Block", - "src": "9839:540:1", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 511, - "src": "9849:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9849:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 454, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9849:21:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 455, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "9884:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 456, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "9894:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9884:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 502, - "nodeType": "Block", - "src": "10078:227:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10113:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10100:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "756e6578706563746564206574686572207472616e73666572", - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10116:27:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - }, - "value": "unexpected ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "10092:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10092:52:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 487, - "nodeType": "ExpressionStatement", - "src": "10092:52:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 488, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10204:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10259:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10259:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10271:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 498, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "10287:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 489, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8042, - "src": "10220:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8042_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - }, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFromWithFees", - "nodeType": "MemberAccess", - "referencedDeclaration": 4634, - "src": "10220:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8302_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$bound_to$_t_contract$_IERC20_$8302_$", - "typeString": "function (contract IERC20,address,address,uint256) returns (uint256)" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:74:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10204:90:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "10204:90:1" - } - ] - }, - "id": 503, - "nodeType": "IfStatement", - "src": "9880:425:1", - "trueBody": { - "id": 479, - "nodeType": "Block", - "src": "9904:168:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 459, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "9926:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "9936:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9936:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9926:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d69736d617463686564206465706f7369742076616c7565", - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9947:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - }, - "value": "mismatched deposit value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - } - ], - "id": 458, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "9918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9918:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "9918:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 466, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "9988:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10004:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10004:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9988:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "9988:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10051:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10051:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10027:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10027:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "10027:34:1" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 505, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10338:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10338:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10350:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10365:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 504, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "10319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10319:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "EmitStatement", - "src": "10314:58:1" - } - ] - }, - "documentation": "@notice Deposits token into the contract to be paid to the Darknodes\n\n /// @param _value The amount of token deposit in the token's smallest unit.\n @param _token The token address", - "id": 512, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9790:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9806:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9806:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9789:32:1" - }, - "returnParameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [], - "src": "9839:0:1" - }, - "scope": 959, - "src": "9773:606:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "10854:537:1", - "statements": [ - { - "assignments": [ - 524 - ], - "declarations": [ - { - "constant": false, - "id": 524, - "name": "whitelistedTime", - "nodeType": "VariableDeclaration", - "scope": 563, - "src": "10864:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 529, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 527, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10914:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 525, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10890:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 999, - "src": "10890:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10890:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10864:60:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "10994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10994:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 546, - "nodeType": "IfStatement", - "src": "10990:154:1", - "trueBody": { - "id": 545, - "nodeType": "Block", - "src": "11016:128:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11046:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 533, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "whitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1161, - "src": "11030:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11030:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "11030:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 540, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11098:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 541, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "11109:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 539, - "name": "LogDarknodeWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "11075:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11075:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 543, - "nodeType": "EmitStatement", - "src": "11070:43:1" - }, - { - "expression": null, - "functionReturnParameters": 522, - "id": 544, - "nodeType": "Return", - "src": "11127:7:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 548, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11162:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 549, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "11180:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11162:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420636c61696d20666f722074686973206379636c65", - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11196:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - }, - "value": "cannot claim for this cycle" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - } - ], - "id": 547, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "11154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11154:72:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11154:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 555, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11317:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 554, - "name": "_claimDarknodeReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "11296:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11296:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 557, - "nodeType": "ExpressionStatement", - "src": "11296:31:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 559, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11359:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 560, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "11370:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 558, - "name": "LogDarknodeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11342:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 562, - "nodeType": "EmitStatement", - "src": "11337:47:1" - } - ] - }, - "documentation": "@notice Claims the rewards allocated to the darknode last cycle and\n increments the darknode balances. Whitelists the darknode if it\n hasn't already been whitelisted. If a darknode does not call\n claim() then the rewards for the previous cycle is lost.\n\n /// @param _darknode The address of the darknode to claim", - "id": 564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10817:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 518, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "10804:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10804:23:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 520, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10843:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 521, - "modifierName": { - "argumentTypes": null, - "id": 519, - "name": "notBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "10828:14:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10828:25:1" - } - ], - "name": "claim", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "10776:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10776:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10775:19:1" - }, - "returnParameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10854:0:1" - }, - "scope": 959, - "src": "10761:630:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 585, - "nodeType": "Block", - "src": "11627:96:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 577, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11653:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 574, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11637:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "blacklist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1127, - "src": "11637:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11637:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "11637:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 581, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11701:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 582, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "11712:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 580, - "name": "LogDarknodeBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "11678:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11678:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 584, - "nodeType": "EmitStatement", - "src": "11673:43:1" - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in rewards.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 569, - "modifierName": { - "argumentTypes": null, - "id": 568, - "name": "onlyBlacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11587:15:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11587:15:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11616:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 572, - "modifierName": { - "argumentTypes": null, - "id": 570, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "11603:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11603:23:1" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "11559:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11559:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11558:19:1" - }, - "returnParameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "11627:0:1" - }, - "scope": 959, - "src": "11540:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "11961:318:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 594, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "11979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 596, - "indexExpression": { - "argumentTypes": null, - "id": 595, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12000:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11979:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12011:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11979:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12014:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "11971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11971:70:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "11971:70:1" - }, - { - "assignments": [ - 603 - ], - "declarations": [ - { - "constant": false, - "id": 603, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 634, - "src": "12051:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 606, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 604, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12070:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12070:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12051:39:1" - }, - { - "body": { - "id": 626, - "nodeType": "Block", - "src": "12139:98:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 618, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12161:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 620, - "indexExpression": { - "argumentTypes": null, - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12175:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12161:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 621, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12181:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12161:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e", - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - }, - "value": "token already pending registration" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - } - ], - "id": 617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12153:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12153:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 625, - "nodeType": "ExpressionStatement", - "src": "12153:73:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 611, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12117:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 612, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "12121:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12117:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 627, - "initializationExpression": { - "assignments": [ - 608 - ], - "declarations": [ - { - "constant": false, - "id": 608, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 627, - "src": "12105:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 607, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12105:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 610, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12114:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12105:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12134:3:1", - "subExpression": { - "argumentTypes": null, - "id": 614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12134:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 616, - "nodeType": "ExpressionStatement", - "src": "12134:3:1" - }, - "nodeType": "ForStatement", - "src": "12100:137:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12265:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12246:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12246:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12246:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "12246:26:1" - } - ] - }, - "documentation": "@notice Adds tokens to be payable. Registration is pending until next\n cycle.\n\n /// @param _token The address of the token to be registered.", - "id": 635, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 591, - "modifierName": { - "argumentTypes": null, - "id": 590, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "11951:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11951:9:1" - } - ], - "name": "registerToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "11926:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11926:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11925:16:1" - }, - "returnParameters": { - "id": 592, - "nodeType": "ParameterList", - "parameters": [], - "src": "11961:0:1" - }, - "scope": 959, - "src": "11903:376:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 655, - "nodeType": "Block", - "src": "12547:116:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 643, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12565:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 645, - "indexExpression": { - "argumentTypes": null, - "id": 644, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12565:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12596:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12565:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12599:22:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12557:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12557:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "ExpressionStatement", - "src": "12557:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 651, - "name": "_deregisterToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "12632:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12632:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 654, - "nodeType": "ExpressionStatement", - "src": "12632:24:1" - } - ] - }, - "documentation": "@notice Removes a token from the list of supported tokens.\n Deregistration is pending until next cycle.\n\n /// @param _token The address of the token to be deregistered.", - "id": 656, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 640, - "modifierName": { - "argumentTypes": null, - "id": 639, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "12537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12537:9:1" - } - ], - "name": "deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "12512:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12512:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12511:16:1" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [], - "src": "12547:0:1" - }, - "scope": 959, - "src": "12487:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 681, - "nodeType": "Block", - "src": "12855:158:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 664, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12873:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12890:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12873:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420636f6e74726163742061646472657373", - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12894:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - }, - "value": "invalid contract address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12865:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12865:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 671, - "nodeType": "ExpressionStatement", - "src": "12865:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 673, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 674, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12965:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 672, - "name": "LogBlacklisterChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12936:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12936:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 676, - "nodeType": "EmitStatement", - "src": "12931:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 677, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12987:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 678, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13001:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12987:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 680, - "nodeType": "ExpressionStatement", - "src": "12987:19:1" - } - ] - }, - "documentation": "@notice Updates the Blacklister contract address.\n\n /// @param _addr The new Blacklister contract address.", - "id": 682, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 661, - "modifierName": { - "argumentTypes": null, - "id": 660, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "12845:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12845:9:1" - } - ], - "name": "updateBlacklister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "12821:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12821:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12820:15:1" - }, - "returnParameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [], - "src": "12855:0:1" - }, - "scope": 959, - "src": "12794:219:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 702, - "nodeType": "Block", - "src": "13277:160:1", - "statements": [ - { - "assignments": [ - 690 - ], - "declarations": [ - { - "constant": false, - "id": 690, - "name": "oldDuration", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "13287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 692, - "initialValue": { - "argumentTypes": null, - "id": 691, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13309:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13287:35:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 693, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13332:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 694, - "name": "_durationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "13348:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13332:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 696, - "nodeType": "ExpressionStatement", - "src": "13332:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 698, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13403:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 699, - "name": "oldDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "13418:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 697, - "name": "LogCycleDurationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "13379:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13379:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 701, - "nodeType": "EmitStatement", - "src": "13374:56:1" - } - ] - }, - "documentation": "@notice Updates cycle duration\n\n /// @param _durationSeconds The amount of time (in seconds) that should have\n passed before a new cycle can be called.", - "id": 703, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 687, - "modifierName": { - "argumentTypes": null, - "id": 686, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "13267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13267:9:1" - } - ], - "name": "updateCycleDuration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 684, - "name": "_durationSeconds", - "nodeType": "VariableDeclaration", - "scope": 703, - "src": "13232:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13231:26:1" - }, - "returnParameters": { - "id": 688, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:0:1" - }, - "scope": 959, - "src": "13203:234:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "13709:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 713, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "13743:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 710, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "13719:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4434, - "src": "13719:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13719:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "13719:34:1" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodePaymentStore.\n\n /// @param _newOwner The address to transfer the ownership to.", - "id": 717, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 708, - "modifierName": { - "argumentTypes": null, - "id": 707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "13699:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13699:9:1" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 705, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "13671:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13670:19:1" - }, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "13709:0:1" - }, - "scope": 959, - "src": "13639:121:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "14035:39:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 722, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14045:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4455, - "src": "14045:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14045:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "14045:22:1" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another DarknodePaymentStore.", - "id": 728, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 720, - "modifierName": { - "argumentTypes": null, - "id": 719, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "14025:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14025:9:1" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 718, - "nodeType": "ParameterList", - "parameters": [], - "src": "14013:2:1" - }, - "returnParameters": { - "id": 721, - "nodeType": "ParameterList", - "parameters": [], - "src": "14035:0:1" - }, - "scope": 959, - "src": "13985:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "14415:655:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14433:40:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 734, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14434:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 736, - "indexExpression": { - "argumentTypes": null, - "id": 735, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14448:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 738, - "indexExpression": { - "argumentTypes": null, - "id": 737, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14459:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "72657761726420616c726561647920636c61696d6564", - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14475:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - }, - "value": "reward already claimed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - } - ], - "id": 733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "14425:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14425:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 742, - "nodeType": "ExpressionStatement", - "src": "14425:75:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 743, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 746, - "indexExpression": { - "argumentTypes": null, - "id": 744, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14524:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14510:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 747, - "indexExpression": { - "argumentTypes": null, - "id": 745, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14510:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14510:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "nodeType": "ExpressionStatement", - "src": "14510:46:1" - }, - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "14566:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 755, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 753, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14585:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14585:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14566:42:1" - }, - { - "body": { - "id": 802, - "nodeType": "Block", - "src": "14657:407:1", - "statements": [ - { - "assignments": [ - 767 - ], - "declarations": [ - { - "constant": false, - "id": 767, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "14671:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 768, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14687:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 770, - "indexExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14704:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14671:35:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14799:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14824:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14799:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14799:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 801, - "nodeType": "IfStatement", - "src": "14795:259:1", - "trueBody": { - "id": 800, - "nodeType": "Block", - "src": "14836:218:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 777, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14854:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 779, - "indexExpression": { - "argumentTypes": null, - "id": 778, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14871:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14854:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 784, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14908:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 786, - "indexExpression": { - "argumentTypes": null, - "id": 785, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14933:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 780, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14880:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 782, - "indexExpression": { - "argumentTypes": null, - "id": 781, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14897:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14880:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "14880:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14880:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14854:86:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "14854:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15000:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15007:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15032:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15007:31:1", - "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": 790, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "incrementDarknodeBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1215, - "src": "14958:30:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14958:81:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "14958:81:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 760, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14635:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 761, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "14639:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14635:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 803, - "initializationExpression": { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 803, - "src": "14623:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14623:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 759, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14632:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14623:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14652:3:1", - "subExpression": { - "argumentTypes": null, - "id": 763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14652:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 765, - "nodeType": "ExpressionStatement", - "src": "14652:3:1" - }, - "nodeType": "ForStatement", - "src": "14618:446:1" - } - ] - }, - "documentation": "@notice Claims the darknode reward for all registered tokens into\n darknodeBalances in the DarknodePaymentStore.\n Rewards can only be claimed once per cycle.\n\n /// @param _darknode The address to the darknode to claim rewards for", - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimDarknodeReward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 805, - "src": "14388:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14388:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14387:19:1" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "14415:0:1" - }, - "scope": 959, - "src": "14358:712:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "15295:391:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 810, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15309:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15323:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15309:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 846, - "nodeType": "Block", - "src": "15435:245:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 826, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15523:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 828, - "indexExpression": { - "argumentTypes": null, - "id": 827, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15523:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15573:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "15550:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "15550:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15523:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "15523:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 835, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15594:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 837, - "indexExpression": { - "argumentTypes": null, - "id": 836, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15594:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 842, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15658:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 838, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15629:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 840, - "indexExpression": { - "argumentTypes": null, - "id": 839, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15646:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7512, - "src": "15629:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:40:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15594:75:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "15594:75:1" - } - ] - }, - "id": 847, - "nodeType": "IfStatement", - "src": "15305:375:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "15326:103:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 813, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15340:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 815, - "indexExpression": { - "argumentTypes": null, - "id": 814, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15357:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15340:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15367:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15340:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "15340:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 819, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15382:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 821, - "indexExpression": { - "argumentTypes": null, - "id": 820, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15382:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15417:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15382:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "15382:36:1" - } - ] - } - } - ] - }, - "documentation": "@notice Snapshots the current balance of the tokens, for all registered\n tokens.\n\n /// @param _token The address the token to snapshot.", - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_snapshotBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "15271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15271:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15270:16:1" - }, - "returnParameters": { - "id": 809, - "nodeType": "ParameterList", - "parameters": [], - "src": "15295:0:1" - }, - "scope": 959, - "src": "15245:441:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 907, - "nodeType": "Block", - "src": "15912:638:1", - "statements": [ - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "lastToken", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "15922:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 856, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15942:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 862, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15987:1:1", - "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": 857, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15959:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15959:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "15959:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15959:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15942:48:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15922:68:1" - }, - { - "assignments": [ - 865 - ], - "declarations": [ - { - "constant": false, - "id": 865, - "name": "deletedTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "16000:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 864, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16000:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16061:1:1", - "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": 866, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16028:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 868, - "indexExpression": { - "argumentTypes": null, - "id": 867, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16049:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16028:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "16028:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16000:63:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 873, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16147:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 875, - "indexExpression": { - "argumentTypes": null, - "id": 874, - "name": "deletedTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "16164:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16147:35:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 876, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16147:47:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "16147:47:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 879, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16204:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 881, - "indexExpression": { - "argumentTypes": null, - "id": 880, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16204:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 882, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16238:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 884, - "indexExpression": { - "argumentTypes": null, - "id": 883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16238:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16204:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 886, - "nodeType": "ExpressionStatement", - "src": "16204:62:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 887, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16401:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 889, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16401:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16455:1:1", - "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": 890, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16427:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16427:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "16427:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16427:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16401:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 896, - "nodeType": "ExpressionStatement", - "src": "16401:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 897, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16467:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "id": 898, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16488:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16467:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16498:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16467:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "16467:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16536:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "LogTokenDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "16515:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16515:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 906, - "nodeType": "EmitStatement", - "src": "16510:33:1" - } - ] - }, - "documentation": "@notice Deregisters a token, removing it from the list of\n registeredTokens.\n\n /// @param _token The address of the token to deregister.", - "id": 908, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 851, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 908, - "src": "15888:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15888:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15887:16:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "15912:0:1" - }, - "scope": 959, - "src": "15862:688:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "16775:375:1", - "statements": [ - { - "assignments": [ - 912 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "16812:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16812:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 915, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 913, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16831:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16831:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16812:39:1" - }, - { - "body": { - "id": 949, - "nodeType": "Block", - "src": "16900:210:1", - "statements": [ - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "16914:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16914:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 931, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 928, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16930:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16944:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16930:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16914:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 935, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "16982:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 932, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16960:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16960:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ExpressionStatement", - "src": "16960:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 938, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "17002:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 940, - "indexExpression": { - "argumentTypes": null, - "id": 939, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17023:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17002:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 941, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "17032:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17032:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17002:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 944, - "nodeType": "ExpressionStatement", - "src": "17002:53:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 945, - "name": "LogTokenRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "17074:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17074:25:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 948, - "nodeType": "EmitStatement", - "src": "17069:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 921, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "16882:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16878:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 950, - "initializationExpression": { - "assignments": [ - 917 - ], - "declarations": [ - { - "constant": false, - "id": 917, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 950, - "src": "16866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 919, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16895:3:1", - "subExpression": { - "argumentTypes": null, - "id": 923, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16895:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "16895:3:1" - }, - "nodeType": "ForStatement", - "src": "16861:249:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 951, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "17119:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 953, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17119:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17142:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17119:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 956, - "nodeType": "ExpressionStatement", - "src": "17119:24:1" - } - ] - }, - "documentation": "@notice Updates the list of registeredTokens adding tokens that are to be registered.\n The list of tokens that are pending registration are emptied afterwards.", - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_updateTokenList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 909, - "nodeType": "ParameterList", - "parameters": [], - "src": "16764:2:1" - }, - "returnParameters": { - "id": 910, - "nodeType": "ParameterList", - "parameters": [], - "src": "16775:0:1" - }, - "scope": 959, - "src": "16739:411:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 960, - "src": "458:16695:1" - } - ], - "src": "0:17154:1" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePayment.sol", - "exportedSymbols": { - "DarknodePayment": [ - 959 - ] - }, - "id": 960, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 12, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:1" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 13, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7646, - "src": "25:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 14, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 7535, - "src": "89:59:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 15, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 8043, - "src": "149:63:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 16, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 4811, - "src": "214:51:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 17, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 2391, - "src": "266:50:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "file": "./DarknodePaymentStore.sol", - "id": 18, - "nodeType": "ImportDirective", - "scope": 960, - "sourceUnit": 1288, - "src": "317:36:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 19, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "486:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 20, - "nodeType": "InheritanceSpecifier", - "src": "486:7:1" - } - ], - "contractDependencies": [ - 7645 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePayment is responsible for paying off darknodes for their\n computation.", - "fullyImplemented": true, - "id": 959, - "linearizedBaseContracts": [ - 959, - 7645 - ], - "name": "DarknodePayment", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 23, - "libraryName": { - "contractScope": null, - "id": 21, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "506:8:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "500:27:1", - "typeName": { - "id": 22, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "519:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 26, - "libraryName": { - "contractScope": null, - "id": 24, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4810, - "src": "538:24:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4810", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "532:41:1", - "typeName": { - "contractScope": null, - "id": 25, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8042, - "src": "567:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 28, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "579:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 27, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "579:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 31, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "695:77:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 29, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 30, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "730:42:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 33, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "779:40:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 32, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "779:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 35, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "967:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 34, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "967:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 37, - "name": "blacklister", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1102:26:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1102:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 39, - "name": "currentCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1135:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 38, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1135:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 41, - "name": "previousCycle", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1168:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 40, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1168:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 43, - "name": "shareCount", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1266:25:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 42, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1266:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 46, - "name": "pendingTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1501:30:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 44, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1501:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 45, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1501:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 49, - "name": "registeredTokens", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1650:33:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 47, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1650:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 48, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1650:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 53, - "name": "registeredTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "1793:55:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 52, - "keyType": { - "id": 50, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1801:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1793:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 51, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1812:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 57, - "name": "unclaimedRewards", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2012:51:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 56, - "keyType": { - "id": 54, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2020:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2012:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 55, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2031:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 61, - "name": "previousCycleRewardShare", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2183:59:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 60, - "keyType": { - "id": 58, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2191:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2183:27:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 59, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2202:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 63, - "name": "cycleStartTime", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2306:29:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 62, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 65, - "name": "cycleDuration", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2415:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 64, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2415:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 67, - "name": "cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2523:27:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 66, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2523:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 73, - "name": "rewardClaimed", - "nodeType": "VariableDeclaration", - "scope": 959, - "src": "2727:65:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "typeName": { - "id": 72, - "keyType": { - "id": 68, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2735:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2727:44:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - }, - "valueType": { - "id": 71, - "keyType": { - "id": 69, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2754:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2746:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 70, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2765:4:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is blacklisted from receiving rewards\n @param _darknode The address of the darknode which was blacklisted\n @param _time The time at which the darknode was blacklisted", - "id": 79, - "name": "LogDarknodeBlacklisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 78, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 75, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3049:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 74, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 77, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "3076:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 76, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3048:42:1" - }, - "src": "3020:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is whitelisted to receive rewards\n @param _darknode The address of the darknode which was whitelisted\n @param _time The time at which the darknode was whitelisted", - "id": 85, - "name": "LogDarknodeWhitelisted", - "nodeType": "EventDefinition", - "parameters": { - "id": 84, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3343:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3343:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 83, - "indexed": false, - "name": "_time", - "nodeType": "VariableDeclaration", - "scope": 85, - "src": "3370:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 82, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3342:42:1" - }, - "src": "3314:71:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode claims their share of reward\n @param _darknode The darknode which claimed\n @param _cycle The cycle that the darknode claimed for", - "id": 91, - "name": "LogDarknodeClaim", - "nodeType": "EventDefinition", - "parameters": { - "id": 90, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "indexed": true, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3597:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 86, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3597:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 89, - "indexed": false, - "name": "_cycle", - "nodeType": "VariableDeclaration", - "scope": 91, - "src": "3624:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 88, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3624:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3596:43:1" - }, - "src": "3574:66:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when someone pays the DarknodePayment contract\n @param _payer The darknode which claimed\n @param _amount The cycle that the darknode claimed for\n @param _token The address of the token that was transferred", - "id": 99, - "name": "LogPaymentReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 98, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 93, - "indexed": true, - "name": "_payer", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3922:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 92, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 95, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3946:15:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 94, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3946:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 97, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 99, - "src": "3963:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 96, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3963:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3921:57:1" - }, - "src": "3897:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode calls withdraw\n @param _payee The address of the darknode which withdrew\n @param _value The amount of DAI withdrawn\n @param _token The address of the token that was withdrawn", - "id": 107, - "name": "LogDarknodeWithdrew", - "nodeType": "EventDefinition", - "parameters": { - "id": 106, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 101, - "indexed": true, - "name": "_payee", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4247:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4247:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 103, - "indexed": false, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 102, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 105, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 107, - "src": "4287:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 104, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4287:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4246:56:1" - }, - "src": "4221:82:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new cycle happens\n @param _newCycle The new, current cycle\n @param _lastCycle The previous cycle\n @param _cycleTimeout The earliest a new cycle can be called", - "id": 115, - "name": "LogNewCycle", - "nodeType": "EventDefinition", - "parameters": { - "id": 114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 109, - "indexed": false, - "name": "_newCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4537:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4537:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 111, - "indexed": false, - "name": "_lastCycle", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4556:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4556:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 113, - "indexed": false, - "name": "_cycleTimeout", - "nodeType": "VariableDeclaration", - "scope": 115, - "src": "4576:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 112, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4576:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4536:62:1" - }, - "src": "4519:80:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the cycle duration changes\n @param _newDuration The new duration\n @param _oldDuration The old duration", - "id": 121, - "name": "LogCycleDurationChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 120, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 117, - "indexed": false, - "name": "_newDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4781:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4781:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "indexed": false, - "name": "_oldDuration", - "nodeType": "VariableDeclaration", - "scope": 121, - "src": "4803:20:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4803:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4780:44:1" - }, - "src": "4751:74:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when the Blacklister contract changes\n @param _newBlacklister The new Blacklister\n @param _oldBlacklister The old Blacklister", - "id": 127, - "name": "LogBlacklisterChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 123, - "indexed": false, - "name": "_newBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5023:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 122, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5023:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 125, - "indexed": false, - "name": "_oldBlacklister", - "nodeType": "VariableDeclaration", - "scope": 127, - "src": "5048:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5048:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5022:50:1" - }, - "src": "4995:78:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new token is registered\n @param _token The token that was registered", - "id": 131, - "name": "LogTokenRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 129, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 131, - "src": "5211:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5211:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5210:16:1" - }, - "src": "5186:41:1" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a token is deregistered\n @param _token The token that was deregistered", - "id": 135, - "name": "LogTokenDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 134, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 133, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "5367:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5366:16:1" - }, - "src": "5340:43:1" - }, - { - "body": { - "id": 148, - "nodeType": "Block", - "src": "5508:107:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 142, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "5556:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 140, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "5526:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isRegistered", - "nodeType": "MemberAccess", - "referencedDeclaration": 2178, - "src": "5526:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5526:40:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f6465206973206e6f742072656769737465726564", - "id": 144, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5568:28:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - }, - "value": "darknode is not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0f050aeb8de9b1f22ac151ce61ab97f0e469f4b821d98865a331c02d75a5fcd", - "typeString": "literal_string \"darknode is not registered\"" - } - ], - "id": 139, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5518:79:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "5518:79:1" - }, - { - "id": 147, - "nodeType": "PlaceholderStatement", - "src": "5607:1:1" - } - ] - }, - "documentation": "@notice Restrict a function registered dark nodes to call a function.", - "id": 149, - "name": "onlyDarknode", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 138, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 137, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 149, - "src": "5489:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 136, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5489:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5488:19:1" - }, - "src": "5467:148:1", - "visibility": "internal" - }, - { - "body": { - "id": 160, - "nodeType": "Block", - "src": "5701:81:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 152, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "5719:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "5734:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5734:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5719:25:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420426c61636b6c6973746572", - "id": 156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5746:17:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - }, - "value": "not Blacklister" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_42a83d196c4be03f7ac5843bd0fd11960453ebb76ebc0b5dc29ceef0a96b197c", - "typeString": "literal_string \"not Blacklister\"" - } - ], - "id": 151, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5711:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5711:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 158, - "nodeType": "ExpressionStatement", - "src": "5711:53:1" - }, - { - "id": 159, - "nodeType": "PlaceholderStatement", - "src": "5774:1:1" - } - ] - }, - "documentation": "@notice Restrict a function the blacklister.", - "id": 161, - "name": "onlyBlacklister", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 150, - "nodeType": "ParameterList", - "parameters": [], - "src": "5698:2:1" - }, - "src": "5674:108:1", - "visibility": "internal" - }, - { - "body": { - "id": 175, - "nodeType": "Block", - "src": "5908:95:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 170, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5926:31:1", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 168, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 163, - "src": "5947:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 166, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "5927:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isBlacklisted", - "nodeType": "MemberAccess", - "referencedDeclaration": 1027, - "src": "5927:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view external returns (bool)" - } - }, - "id": 169, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5927:30:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 171, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5959:25:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 165, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5918:67:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 173, - "nodeType": "ExpressionStatement", - "src": "5918:67:1" - }, - { - "id": 174, - "nodeType": "PlaceholderStatement", - "src": "5995:1:1" - } - ] - }, - "documentation": "@notice Restrict a function darknodes which haven't been blacklisted", - "id": 176, - "name": "notBlacklisted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 176, - "src": "5889:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5889:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5888:19:1" - }, - "src": "5865:138:1", - "visibility": "internal" - }, - { - "body": { - "id": 225, - "nodeType": "Block", - "src": "6655:418:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 187, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 28, - "src": "6665:7:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 188, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 178, - "src": "6675:8:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "6665:18:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "6665:18:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 191, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "6693:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 192, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 180, - "src": "6712:17:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "6693:36:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 194, - "nodeType": "ExpressionStatement", - "src": "6693:36:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 195, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "6739:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 196, - "name": "_darknodePaymentStore", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 182, - "src": "6747:21:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "src": "6739:29:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 198, - "nodeType": "ExpressionStatement", - "src": "6739:29:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 199, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "6778:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 200, - "name": "_cycleDurationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6794:21:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6778:37:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 202, - "nodeType": "ExpressionStatement", - "src": "6778:37:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 203, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "6869:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 204, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "6883:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6883:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6869:24:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 207, - "nodeType": "ExpressionStatement", - "src": "6869:24:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 208, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "6939:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 209, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "6954:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6954:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6939:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 212, - "nodeType": "ExpressionStatement", - "src": "6939:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 213, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "6976:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 214, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "6993:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6993:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6976:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 217, - "nodeType": "ExpressionStatement", - "src": "6976:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 218, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "7018:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 221, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "7052:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 219, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "7033:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "7033:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7033:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7018:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 224, - "nodeType": "ExpressionStatement", - "src": "7018:48:1" - } - ] - }, - "documentation": "@notice The contract constructor. Starts the current cycle using the\n time of deploy.\n\n /// @param _VERSION A string defining the contract version.\n @param _darknodeRegistry The address of the DarknodeRegistry contract\n @param _darknodePaymentStore The address of the DarknodePaymentStore\n contract\n @param _cycleDurationSeconds The minimum time before a new cycle can occur in seconds", - "id": 226, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 178, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6484:22:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 177, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6484:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 180, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6516:34:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 179, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "6516:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 182, - "name": "_darknodePaymentStore", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6560:42:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - }, - "typeName": { - "contractScope": null, - "id": 181, - "name": "DarknodePaymentStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1287, - "src": "6560:20:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 184, - "name": "_cycleDurationSeconds", - "nodeType": "VariableDeclaration", - "scope": 226, - "src": "6612:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 183, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6612:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6474:173:1" - }, - "returnParameters": { - "id": 186, - "nodeType": "ParameterList", - "parameters": [], - "src": "6655:0:1" - }, - "scope": 959, - "src": "6463:610:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "7347:416:1", - "statements": [ - { - "assignments": [ - 234 - ], - "declarations": [ - { - "constant": false, - "id": 234, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7357:29:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 233, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7357:15:1", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 239, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 237, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7423:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 235, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "7389:16:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getDarknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 1934, - "src": "7389:33:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7389:44:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7357:76:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 245, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 241, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7451:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7476:3:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7468:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7468:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7451:29:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c6964206461726b6e6f6465206f776e6572", - "id": 246, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7482:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - }, - "value": "invalid darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9c790fcc7516cfa146c3c07a005d290d38dc63b9712b8a88294a34c3910a723b", - "typeString": "literal_string \"invalid darknode owner\"" - } - ], - "id": 240, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "7443:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 247, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7443:64:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 248, - "nodeType": "ExpressionStatement", - "src": "7443:64:1" - }, - { - "assignments": [ - 250 - ], - "declarations": [ - { - "constant": false, - "id": 250, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "7518:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7518:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 256, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 253, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7558:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 254, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7569:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 251, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7535:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "7535:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7535:41:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7518:58:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 258, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7594:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7603:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7594:10:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7468696e6720746f207769746864726177", - "id": 261, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7606:21:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - }, - "value": "nothing to withdraw" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d015b7d7782ab5f33f0b2a3f3ec5207107594fb24ec0023388f87a16a3862dc0", - "typeString": "literal_string \"nothing to withdraw\"" - } - ], - "id": 257, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "7586:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7586:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 263, - "nodeType": "ExpressionStatement", - "src": "7586:42:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 267, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7654:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 268, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7665:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 269, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7673:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "7681:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 264, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "7639:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 1286, - "src": "7639:14:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,address,uint256,address payable) external" - } - }, - "id": 271, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7639:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 272, - "nodeType": "ExpressionStatement", - "src": "7639:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 274, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "7730:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 250, - "src": "7741:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "7749:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 273, - "name": "LogDarknodeWithdrew", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7710:19:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7710:46:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 278, - "nodeType": "EmitStatement", - "src": "7705:51:1" - } - ] - }, - "documentation": "@notice Transfers the funds allocated to the darknode to the darknode\n owner.\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer", - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 231, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 228, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7305:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 227, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7305:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "7324:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7324:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7304:35:1" - }, - "returnParameters": { - "id": 232, - "nodeType": "ParameterList", - "parameters": [], - "src": "7347:0:1" - }, - "scope": 959, - "src": "7287:476:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 308, - "nodeType": "Block", - "src": "7851:114:1", - "statements": [ - { - "body": { - "id": 306, - "nodeType": "Block", - "src": "7903:56:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 300, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "7926:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 301, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7937:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 303, - "indexExpression": { - "argumentTypes": null, - "id": 302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7945:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7937:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 299, - "name": "withdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 280, - "src": "7917:8:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7917:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 305, - "nodeType": "ExpressionStatement", - "src": "7917:31:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 292, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 293, - "name": "_tokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 285, - "src": "7882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[] calldata" - } - }, - "id": 294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7882:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7878:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 307, - "initializationExpression": { - "assignments": [ - 289 - ], - "declarations": [ - { - "constant": false, - "id": 289, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 307, - "src": "7866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 288, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 291, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 290, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "7866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7898:3:1", - "subExpression": { - "argumentTypes": null, - "id": 296, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 289, - "src": "7898:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 298, - "nodeType": "ExpressionStatement", - "src": "7898:3:1" - }, - "nodeType": "ForStatement", - "src": "7861:98:1" - } - ] - }, - "documentation": null, - "id": 309, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawMultiple", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7795:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7795:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 285, - "name": "_tokens", - "nodeType": "VariableDeclaration", - "scope": 309, - "src": "7814:26:1", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 283, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7814:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 284, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7814:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7794:47:1" - }, - "returnParameters": { - "id": 287, - "nodeType": "ParameterList", - "parameters": [], - "src": "7851:0:1" - }, - "scope": 959, - "src": "7769:196:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 328, - "nodeType": "Block", - "src": "8066:117:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 316, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "8100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 313, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8084:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8076:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8076:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8076:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 319, - "nodeType": "ExpressionStatement", - "src": "8076:34:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 321, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "8144:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8144:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 323, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "8156:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8156:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 325, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "8167:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 320, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "8125:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 326, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8125:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 327, - "nodeType": "EmitStatement", - "src": "8120:56:1" - } - ] - }, - "documentation": "@notice Forward all payments to the DarknodePaymentStore.", - "id": 329, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 310, - "nodeType": "ParameterList", - "parameters": [], - "src": "8046:2:1" - }, - "returnParameters": { - "id": 311, - "nodeType": "ParameterList", - "parameters": [], - "src": "8066:0:1" - }, - "scope": 959, - "src": "8037:146:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 346, - "nodeType": "Block", - "src": "8379:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 341, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "8431:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 343, - "indexExpression": { - "argumentTypes": null, - "id": 342, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8448:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8431:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 338, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 331, - "src": "8419:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 336, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8396:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "8396:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "8396:34:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8396:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 335, - "id": 345, - "nodeType": "Return", - "src": "8389:67:1" - } - ] - }, - "documentation": "@notice The current balance of the contract available as reward for the\n current cycle", - "id": 347, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "currentCycleRewardPool", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 331, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8331:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8331:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8330:16:1" - }, - "returnParameters": { - "id": 335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 334, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 347, - "src": "8370:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8370:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8369:9:1" - }, - "scope": 959, - "src": "8299:164:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 362, - "nodeType": "Block", - "src": "8564:67:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 358, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 349, - "src": "8604:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 359, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 351, - "src": "8617:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 356, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "8581:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBalances", - "nodeType": "MemberAccess", - "referencedDeclaration": 987, - "src": "8581:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$", - "typeString": "function (address,address) view external returns (uint256)" - } - }, - "id": 360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8581:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 355, - "id": 361, - "nodeType": "Return", - "src": "8574:50:1" - } - ] - }, - "documentation": null, - "id": 363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "darknodeBalances", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 349, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8495:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 348, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8495:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 351, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8516:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8516:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8494:37:1" - }, - "returnParameters": { - "id": 355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 354, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 363, - "src": "8555:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8555:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8554:9:1" - }, - "scope": 959, - "src": "8469:162:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 444, - "nodeType": "Block", - "src": "8730:832:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 369, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "8748:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 370, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "8755:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8748:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f74206379636c65207965743a20746f6f206561726c79", - "id": 372, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8769:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - }, - "value": "cannot cycle yet: too early" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cecae2a9522e7de8b5351ed829ea6421f34a49feaff61f26fa8e4e0daafc0c3e", - "typeString": "literal_string \"cannot cycle yet: too early\"" - } - ], - "id": 368, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "8740:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8740:59:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 374, - "nodeType": "ExpressionStatement", - "src": "8740:59:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8817:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8817:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 378, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "8833:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8817:28:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f206e657720626c6f636b", - "id": 380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8847:14:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - }, - "value": "no new block" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_295866d09e15f2d7cb6466a82b1128916b3b54ff9b83f600fbbd4e36ec88a9fc", - "typeString": "literal_string \"no new block\"" - } - ], - "id": 375, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "8809:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8809:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 382, - "nodeType": "ExpressionStatement", - "src": "8809:53:1" - }, - { - "assignments": [ - 384 - ], - "declarations": [ - { - "constant": false, - "id": 384, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 444, - "src": "8921:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 383, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8921:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 387, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 385, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "8940:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 386, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8940:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8921:42:1" - }, - { - "body": { - "id": 404, - "nodeType": "Block", - "src": "9012:62:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 399, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "9043:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 401, - "indexExpression": { - "argumentTypes": null, - "id": 400, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9060:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9043:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 398, - "name": "_snapshotBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 849, - "src": "9026:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9026:37:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 403, - "nodeType": "ExpressionStatement", - "src": "9026:37:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 392, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "8990:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 393, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 384, - "src": "8994:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8990:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 405, - "initializationExpression": { - "assignments": [ - 389 - ], - "declarations": [ - { - "constant": false, - "id": 389, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 405, - "src": "8978:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 388, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8978:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 391, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8987:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8978:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9007:3:1", - "subExpression": { - "argumentTypes": null, - "id": 395, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 389, - "src": "9007:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 397, - "nodeType": "ExpressionStatement", - "src": "9007:3:1" - }, - "nodeType": "ForStatement", - "src": "8973:101:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 406, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9113:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 407, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9129:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9113:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 409, - "nodeType": "ExpressionStatement", - "src": "9113:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 410, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9151:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 411, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "9166:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9166:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9151:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "9151:27:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 415, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9188:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 416, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "9205:5:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9205:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9188:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 419, - "nodeType": "ExpressionStatement", - "src": "9188:32:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 420, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9230:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 423, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9264:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 421, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9245:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "9245:18:1", - "typeDescriptions": { - "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": "9245:33:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9230:48:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "9230:48:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 427, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "9337:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 428, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "9350:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelistLength", - "nodeType": "MemberAccess", - "referencedDeclaration": 981, - "src": "9350:29:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", - "typeString": "function () view external returns (uint256)" - } - }, - "id": 430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9350:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9337:44:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 432, - "nodeType": "ExpressionStatement", - "src": "9337:44:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 433, - "name": "_updateTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 958, - "src": "9438:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } - }, - "id": 434, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9438:18:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 435, - "nodeType": "ExpressionStatement", - "src": "9438:18:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 437, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9484:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 438, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "9498:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 439, - "name": "cycleTimeout", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9513:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 436, - "name": "LogNewCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 115, - "src": "9472:11:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,uint256)" - } - }, - "id": 440, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9472:54:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 441, - "nodeType": "EmitStatement", - "src": "9467:59:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 442, - "name": "currentCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 39, - "src": "9543:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 367, - "id": 443, - "nodeType": "Return", - "src": "9536:19:1" - } - ] - }, - "documentation": "@notice Changes the current cycle.", - "id": 445, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "changeCycle", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 364, - "nodeType": "ParameterList", - "parameters": [], - "src": "8700:2:1" - }, - "returnParameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 445, - "src": "8721:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8721:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8720:9:1" - }, - "scope": 959, - "src": "8680:882:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 511, - "nodeType": "Block", - "src": "9839:540:1", - "statements": [ - { - "assignments": [ - 453 - ], - "declarations": [ - { - "constant": false, - "id": 453, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 511, - "src": "9849:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 452, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9849:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 454, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "9849:21:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 455, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "9884:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 456, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "9894:8:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9884:18:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 502, - "nodeType": "Block", - "src": "10078:227:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 481, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10100:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10100:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10113:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10100:14:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "756e6578706563746564206574686572207472616e73666572", - "id": 485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10116:27:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - }, - "value": "unexpected ether transfer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2b773e1733874c38ac552212083a64eadb144022df83a1e216d77353b84e7ecd", - "typeString": "literal_string \"unexpected ether transfer\"" - } - ], - "id": 480, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "10092:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10092:52:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 487, - "nodeType": "ExpressionStatement", - "src": "10092:52:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 488, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10204:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 493, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10259:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10259:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 496, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10279:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 495, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10271:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10271:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 498, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "10287:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 490, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10226:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 489, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8042, - "src": "10220:5:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8042_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:13:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - }, - "id": 492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransferFromWithFees", - "nodeType": "MemberAccess", - "referencedDeclaration": 4634, - "src": "10220:38:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8302_$_t_address_$_t_address_$_t_uint256_$returns$_t_uint256_$bound_to$_t_contract$_IERC20_$8302_$", - "typeString": "function (contract IERC20,address,address,uint256) returns (uint256)" - } - }, - "id": 499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10220:74:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10204:90:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 501, - "nodeType": "ExpressionStatement", - "src": "10204:90:1" - } - ] - }, - "id": 503, - "nodeType": "IfStatement", - "src": "9880:425:1", - "trueBody": { - "id": 479, - "nodeType": "Block", - "src": "9904:168:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 459, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 447, - "src": "9926:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 460, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "9936:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9936:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9926:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d69736d617463686564206465706f7369742076616c7565", - "id": 463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9947:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - }, - "value": "mismatched deposit value" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d234018c93f3455a77d39bb3ddfe18573be99173ad47d162fecec56c831dcfa5", - "typeString": "literal_string \"mismatched deposit value\"" - } - ], - "id": 458, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "9918:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9918:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 465, - "nodeType": "ExpressionStatement", - "src": "9918:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 466, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "9988:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 467, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10004:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10004:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9988:25:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 470, - "nodeType": "ExpressionStatement", - "src": "9988:25:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 475, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10051:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10051:9:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 472, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10035:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10027:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10027:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10027:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 478, - "nodeType": "ExpressionStatement", - "src": "10027:34:1" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 505, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "10338:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10338:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 507, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 453, - "src": "10350:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 508, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 449, - "src": "10365:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 504, - "name": "LogPaymentReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 99, - "src": "10319:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (address,uint256,address)" - } - }, - "id": 509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10319:53:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 510, - "nodeType": "EmitStatement", - "src": "10314:58:1" - } - ] - }, - "documentation": "@notice Deposits token into the contract to be paid to the Darknodes\n\n /// @param _value The amount of token deposit in the token's smallest unit.\n @param _token The token address", - "id": 512, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deposit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 450, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 447, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9790:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 446, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9790:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 449, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 512, - "src": "9806:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 448, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9806:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9789:32:1" - }, - "returnParameters": { - "id": 451, - "nodeType": "ParameterList", - "parameters": [], - "src": "9839:0:1" - }, - "scope": 959, - "src": "9773:606:1", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 563, - "nodeType": "Block", - "src": "10854:537:1", - "statements": [ - { - "assignments": [ - 524 - ], - "declarations": [ - { - "constant": false, - "id": 524, - "name": "whitelistedTime", - "nodeType": "VariableDeclaration", - "scope": 563, - "src": "10864:23:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 523, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10864:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 529, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 527, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10914:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 525, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "10890:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeWhitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 999, - "src": "10890:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10890:34:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10864:60:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 530, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "10994:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11013:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10994:20:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 546, - "nodeType": "IfStatement", - "src": "10990:154:1", - "trueBody": { - "id": 545, - "nodeType": "Block", - "src": "11016:128:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 536, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11046:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 533, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11030:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "whitelist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1161, - "src": "11030:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11030:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 538, - "nodeType": "ExpressionStatement", - "src": "11030:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 540, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11098:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 541, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "11109:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 539, - "name": "LogDarknodeWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 85, - "src": "11075:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11075:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 543, - "nodeType": "EmitStatement", - "src": "11070:43:1" - }, - { - "expression": null, - "functionReturnParameters": 522, - "id": 544, - "nodeType": "Return", - "src": "11127:7:1" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 548, - "name": "whitelistedTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 524, - "src": "11162:15:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 549, - "name": "cycleStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "11180:14:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11162:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420636c61696d20666f722074686973206379636c65", - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11196:29:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - }, - "value": "cannot claim for this cycle" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3d046fb6ee277dc79428b09c4f711ae205caaf399a387acd7693b7d10df0b096", - "typeString": "literal_string \"cannot claim for this cycle\"" - } - ], - "id": 547, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "11154:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11154:72:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 553, - "nodeType": "ExpressionStatement", - "src": "11154:72:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 555, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11317:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 554, - "name": "_claimDarknodeReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 805, - "src": "11296:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11296:31:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 557, - "nodeType": "ExpressionStatement", - "src": "11296:31:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 559, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "11359:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 560, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "11370:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 558, - "name": "LogDarknodeClaim", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 91, - "src": "11342:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11342:42:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 562, - "nodeType": "EmitStatement", - "src": "11337:47:1" - } - ] - }, - "documentation": "@notice Claims the rewards allocated to the darknode last cycle and\n increments the darknode balances. Whitelists the darknode if it\n hasn't already been whitelisted. If a darknode does not call\n claim() then the rewards for the previous cycle is lost.\n\n /// @param _darknode The address of the darknode to claim", - "id": 564, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 517, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10817:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 518, - "modifierName": { - "argumentTypes": null, - "id": 516, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "10804:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10804:23:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 520, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "10843:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 521, - "modifierName": { - "argumentTypes": null, - "id": 519, - "name": "notBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 176, - "src": "10828:14:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "10828:25:1" - } - ], - "name": "claim", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 515, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 514, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 564, - "src": "10776:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 513, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10776:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10775:19:1" - }, - "returnParameters": { - "id": 522, - "nodeType": "ParameterList", - "parameters": [], - "src": "10854:0:1" - }, - "scope": 959, - "src": "10761:630:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 585, - "nodeType": "Block", - "src": "11627:96:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 577, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11653:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 574, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "11637:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "blacklist", - "nodeType": "MemberAccess", - "referencedDeclaration": 1127, - "src": "11637:15:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11637:26:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 579, - "nodeType": "ExpressionStatement", - "src": "11637:26:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 581, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11701:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 582, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8338, - "src": "11712:3:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 580, - "name": "LogDarknodeBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 79, - "src": "11678:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11678:38:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 584, - "nodeType": "EmitStatement", - "src": "11673:43:1" - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in rewards.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 586, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 569, - "modifierName": { - "argumentTypes": null, - "id": 568, - "name": "onlyBlacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 161, - "src": "11587:15:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11587:15:1" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 571, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 566, - "src": "11616:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 572, - "modifierName": { - "argumentTypes": null, - "id": 570, - "name": "onlyDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 149, - "src": "11603:12:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "11603:23:1" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 567, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 566, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 586, - "src": "11559:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11559:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11558:19:1" - }, - "returnParameters": { - "id": 573, - "nodeType": "ParameterList", - "parameters": [], - "src": "11627:0:1" - }, - "scope": 959, - "src": "11540:183:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 634, - "nodeType": "Block", - "src": "11961:318:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 594, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "11979:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 596, - "indexExpression": { - "argumentTypes": null, - "id": 595, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12000:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11979:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 597, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12011:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "11979:33:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 599, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12014:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 593, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "11971:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11971:70:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 601, - "nodeType": "ExpressionStatement", - "src": "11971:70:1" - }, - { - "assignments": [ - 603 - ], - "declarations": [ - { - "constant": false, - "id": 603, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 634, - "src": "12051:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 602, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12051:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 606, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 604, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12070:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12070:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12051:39:1" - }, - { - "body": { - "id": 626, - "nodeType": "Block", - "src": "12139:98:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 618, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12161:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 620, - "indexExpression": { - "argumentTypes": null, - "id": 619, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12175:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12161:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 621, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12181:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12161:26:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792070656e64696e6720726567697374726174696f6e", - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12189:36:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - }, - "value": "token already pending registration" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_787dd62bc86d4d83726163638c797bb33cf12206a1d6b26822f09d2dfd3c4850", - "typeString": "literal_string \"token already pending registration\"" - } - ], - "id": 617, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12153:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12153:73:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 625, - "nodeType": "ExpressionStatement", - "src": "12153:73:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 611, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12117:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 612, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 603, - "src": "12121:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12117:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 627, - "initializationExpression": { - "assignments": [ - 608 - ], - "declarations": [ - { - "constant": false, - "id": 608, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 627, - "src": "12105:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 607, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12105:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 610, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12114:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "12105:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12134:3:1", - "subExpression": { - "argumentTypes": null, - "id": 614, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 608, - "src": "12134:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 616, - "nodeType": "ExpressionStatement", - "src": "12134:3:1" - }, - "nodeType": "ForStatement", - "src": "12100:137:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 631, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 588, - "src": "12265:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 628, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "12246:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12246:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12246:26:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "12246:26:1" - } - ] - }, - "documentation": "@notice Adds tokens to be payable. Registration is pending until next\n cycle.\n\n /// @param _token The address of the token to be registered.", - "id": 635, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 591, - "modifierName": { - "argumentTypes": null, - "id": 590, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "11951:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11951:9:1" - } - ], - "name": "registerToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 589, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 588, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 635, - "src": "11926:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11926:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11925:16:1" - }, - "returnParameters": { - "id": 592, - "nodeType": "ParameterList", - "parameters": [], - "src": "11961:0:1" - }, - "scope": 959, - "src": "11903:376:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 655, - "nodeType": "Block", - "src": "12547:116:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 647, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 643, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "12565:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 645, - "indexExpression": { - "argumentTypes": null, - "id": 644, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12586:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12565:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12596:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "12565:32:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12599:22:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 642, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12557:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12557:65:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 650, - "nodeType": "ExpressionStatement", - "src": "12557:65:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 652, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 637, - "src": "12649:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 651, - "name": "_deregisterToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "12632:16:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12632:24:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 654, - "nodeType": "ExpressionStatement", - "src": "12632:24:1" - } - ] - }, - "documentation": "@notice Removes a token from the list of supported tokens.\n Deregistration is pending until next cycle.\n\n /// @param _token The address of the token to be deregistered.", - "id": 656, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 640, - "modifierName": { - "argumentTypes": null, - "id": 639, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "12537:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12537:9:1" - } - ], - "name": "deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 638, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 637, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 656, - "src": "12512:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 636, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12512:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12511:16:1" - }, - "returnParameters": { - "id": 641, - "nodeType": "ParameterList", - "parameters": [], - "src": "12547:0:1" - }, - "scope": 959, - "src": "12487:176:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 681, - "nodeType": "Block", - "src": "12855:158:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 664, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12873:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12890:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 665, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12882:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12882:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12873:19:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420636f6e74726163742061646472657373", - "id": 669, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12894:26:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - }, - "value": "invalid contract address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e5d559618de365ea9d9be741e7ee7e42841366bee9c710626ecee327ca18b84b", - "typeString": "literal_string \"invalid contract address\"" - } - ], - "id": 663, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12865:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12865:56:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 671, - "nodeType": "ExpressionStatement", - "src": "12865:56:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 673, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "12958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 674, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12965:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 672, - "name": "LogBlacklisterChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "12936:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 675, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12936:41:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 676, - "nodeType": "EmitStatement", - "src": "12931:46:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 677, - "name": "blacklister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 37, - "src": "12987:11:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 678, - "name": "_addr", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 658, - "src": "13001:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "12987:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 680, - "nodeType": "ExpressionStatement", - "src": "12987:19:1" - } - ] - }, - "documentation": "@notice Updates the Blacklister contract address.\n\n /// @param _addr The new Blacklister contract address.", - "id": 682, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 661, - "modifierName": { - "argumentTypes": null, - "id": 660, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "12845:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12845:9:1" - } - ], - "name": "updateBlacklister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 658, - "name": "_addr", - "nodeType": "VariableDeclaration", - "scope": 682, - "src": "12821:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 657, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12821:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12820:15:1" - }, - "returnParameters": { - "id": 662, - "nodeType": "ParameterList", - "parameters": [], - "src": "12855:0:1" - }, - "scope": 959, - "src": "12794:219:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 702, - "nodeType": "Block", - "src": "13277:160:1", - "statements": [ - { - "assignments": [ - 690 - ], - "declarations": [ - { - "constant": false, - "id": 690, - "name": "oldDuration", - "nodeType": "VariableDeclaration", - "scope": 702, - "src": "13287:19:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 689, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13287:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 692, - "initialValue": { - "argumentTypes": null, - "id": 691, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13309:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13287:35:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 693, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13332:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 694, - "name": "_durationSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 684, - "src": "13348:16:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13332:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 696, - "nodeType": "ExpressionStatement", - "src": "13332:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 698, - "name": "cycleDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "13403:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 699, - "name": "oldDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 690, - "src": "13418:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 697, - "name": "LogCycleDurationChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 121, - "src": "13379:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13379:51:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 701, - "nodeType": "EmitStatement", - "src": "13374:56:1" - } - ] - }, - "documentation": "@notice Updates cycle duration\n\n /// @param _durationSeconds The amount of time (in seconds) that should have\n passed before a new cycle can be called.", - "id": 703, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 687, - "modifierName": { - "argumentTypes": null, - "id": 686, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "13267:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13267:9:1" - } - ], - "name": "updateCycleDuration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 684, - "name": "_durationSeconds", - "nodeType": "VariableDeclaration", - "scope": 703, - "src": "13232:24:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13232:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13231:26:1" - }, - "returnParameters": { - "id": 688, - "nodeType": "ParameterList", - "parameters": [], - "src": "13277:0:1" - }, - "scope": 959, - "src": "13203:234:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 716, - "nodeType": "Block", - "src": "13709:51:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 713, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 705, - "src": "13743:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 710, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "13719:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4434, - "src": "13719:23:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13719:34:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 715, - "nodeType": "ExpressionStatement", - "src": "13719:34:1" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodePaymentStore.\n\n /// @param _newOwner The address to transfer the ownership to.", - "id": 717, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 708, - "modifierName": { - "argumentTypes": null, - "id": 707, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "13699:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13699:9:1" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 706, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 705, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 717, - "src": "13671:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 704, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13670:19:1" - }, - "returnParameters": { - "id": 709, - "nodeType": "ParameterList", - "parameters": [], - "src": "13709:0:1" - }, - "scope": 959, - "src": "13639:121:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 727, - "nodeType": "Block", - "src": "14035:39:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 722, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14045:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4455, - "src": "14045:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14045:22:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "14045:22:1" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another DarknodePaymentStore.", - "id": 728, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 720, - "modifierName": { - "argumentTypes": null, - "id": 719, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "14025:9:1", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14025:9:1" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 718, - "nodeType": "ParameterList", - "parameters": [], - "src": "14013:2:1" - }, - "returnParameters": { - "id": 721, - "nodeType": "ParameterList", - "parameters": [], - "src": "14035:0:1" - }, - "scope": 959, - "src": "13985:89:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 804, - "nodeType": "Block", - "src": "14415:655:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14433:40:1", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 734, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14434:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 736, - "indexExpression": { - "argumentTypes": null, - "id": 735, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14448:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 738, - "indexExpression": { - "argumentTypes": null, - "id": 737, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14459:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14434:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "72657761726420616c726561647920636c61696d6564", - "id": 740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14475:24:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - }, - "value": "reward already claimed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dd5732e3fabae4380b82b177a141d95d2c717ae2c95a2c5be3b639386aff2f95", - "typeString": "literal_string \"reward already claimed\"" - } - ], - "id": 733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "14425:7:1", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14425:75:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 742, - "nodeType": "ExpressionStatement", - "src": "14425:75:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 743, - "name": "rewardClaimed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 73, - "src": "14510:13:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(address => mapping(uint256 => bool))" - } - }, - "id": 746, - "indexExpression": { - "argumentTypes": null, - "id": 744, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14524:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14510:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 747, - "indexExpression": { - "argumentTypes": null, - "id": 745, - "name": "previousCycle", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "14535:13:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14510:39:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14552:4:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14510:46:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 750, - "nodeType": "ExpressionStatement", - "src": "14510:46:1" - }, - { - "assignments": [ - 752 - ], - "declarations": [ - { - "constant": false, - "id": 752, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 804, - "src": "14566:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 751, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14566:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 755, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 753, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14585:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 754, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14585:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14566:42:1" - }, - { - "body": { - "id": 802, - "nodeType": "Block", - "src": "14657:407:1", - "statements": [ - { - "assignments": [ - 767 - ], - "declarations": [ - { - "constant": false, - "id": 767, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 802, - "src": "14671:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 766, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14671:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 771, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 768, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "14687:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 770, - "indexExpression": { - "argumentTypes": null, - "id": 769, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14704:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14687:19:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14671:35:1" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 772, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14799:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 774, - "indexExpression": { - "argumentTypes": null, - "id": 773, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14824:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14799:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 775, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14833:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14799:35:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 801, - "nodeType": "IfStatement", - "src": "14795:259:1", - "trueBody": { - "id": 800, - "nodeType": "Block", - "src": "14836:218:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 777, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14854:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 779, - "indexExpression": { - "argumentTypes": null, - "id": 778, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14871:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "14854:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 784, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "14908:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 786, - "indexExpression": { - "argumentTypes": null, - "id": 785, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14933:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 780, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "14880:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 782, - "indexExpression": { - "argumentTypes": null, - "id": 781, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "14897:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14880:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "14880:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14880:60:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14854:86:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 789, - "nodeType": "ExpressionStatement", - "src": "14854:86:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 793, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 730, - "src": "14989:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 794, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15000:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 795, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15007:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 797, - "indexExpression": { - "argumentTypes": null, - "id": 796, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 767, - "src": "15032:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15007:31:1", - "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": 790, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "14958:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "incrementDarknodeBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1215, - "src": "14958:30:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14958:81:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 799, - "nodeType": "ExpressionStatement", - "src": "14958:81:1" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 760, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14635:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 761, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "14639:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14635:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 803, - "initializationExpression": { - "assignments": [ - 757 - ], - "declarations": [ - { - "constant": false, - "id": 757, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 803, - "src": "14623:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14623:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 759, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14632:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14623:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14652:3:1", - "subExpression": { - "argumentTypes": null, - "id": 763, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "14652:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 765, - "nodeType": "ExpressionStatement", - "src": "14652:3:1" - }, - "nodeType": "ForStatement", - "src": "14618:446:1" - } - ] - }, - "documentation": "@notice Claims the darknode reward for all registered tokens into\n darknodeBalances in the DarknodePaymentStore.\n Rewards can only be claimed once per cycle.\n\n /// @param _darknode The address to the darknode to claim rewards for", - "id": 805, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimDarknodeReward", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 731, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 730, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 805, - "src": "14388:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 729, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14388:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14387:19:1" - }, - "returnParameters": { - "id": 732, - "nodeType": "ParameterList", - "parameters": [], - "src": "14415:0:1" - }, - "scope": 959, - "src": "14358:712:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "15295:391:1", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 810, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15309:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15323:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15309:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 846, - "nodeType": "Block", - "src": "15435:245:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 826, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15523:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 828, - "indexExpression": { - "argumentTypes": null, - "id": 827, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15540:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15523:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 831, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15573:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 829, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "15550:5:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "availableBalance", - "nodeType": "MemberAccess", - "referencedDeclaration": 1086, - "src": "15550:22:1", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15550:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15523:57:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 834, - "nodeType": "ExpressionStatement", - "src": "15523:57:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 844, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 835, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15594:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 837, - "indexExpression": { - "argumentTypes": null, - "id": 836, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15619:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15594:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 842, - "name": "shareCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 43, - "src": "15658:10:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 838, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15629:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 840, - "indexExpression": { - "argumentTypes": null, - "id": 839, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15646:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15629:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7512, - "src": "15629:28:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15629:40:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15594:75:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 845, - "nodeType": "ExpressionStatement", - "src": "15594:75:1" - } - ] - }, - "id": 847, - "nodeType": "IfStatement", - "src": "15305:375:1", - "trueBody": { - "id": 825, - "nodeType": "Block", - "src": "15326:103:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 813, - "name": "unclaimedRewards", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 57, - "src": "15340:16:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 815, - "indexExpression": { - "argumentTypes": null, - "id": 814, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15357:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15340:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15367:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15340:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "15340:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 819, - "name": "previousCycleRewardShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 61, - "src": "15382:24:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 821, - "indexExpression": { - "argumentTypes": null, - "id": 820, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 807, - "src": "15407:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15382:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 822, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15417:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15382:36:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 824, - "nodeType": "ExpressionStatement", - "src": "15382:36:1" - } - ] - } - } - ] - }, - "documentation": "@notice Snapshots the current balance of the tokens, for all registered\n tokens.\n\n /// @param _token The address the token to snapshot.", - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_snapshotBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 808, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 807, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "15271:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15271:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15270:16:1" - }, - "returnParameters": { - "id": 809, - "nodeType": "ParameterList", - "parameters": [], - "src": "15295:0:1" - }, - "scope": 959, - "src": "15245:441:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 907, - "nodeType": "Block", - "src": "15912:638:1", - "statements": [ - { - "assignments": [ - 855 - ], - "declarations": [ - { - "constant": false, - "id": 855, - "name": "lastToken", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "15922:17:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 854, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15922:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 856, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15942:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 862, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15987:1:1", - "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": 857, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "15959:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 858, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15959:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "15959:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15959:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15942:48:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15922:68:1" - }, - { - "assignments": [ - 865 - ], - "declarations": [ - { - "constant": false, - "id": 865, - "name": "deletedTokenIndex", - "nodeType": "VariableDeclaration", - "scope": 907, - "src": "16000:25:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 864, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16000:7:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 872, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16061:1:1", - "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": 866, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16028:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 868, - "indexExpression": { - "argumentTypes": null, - "id": 867, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16049:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16028:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "16028:32:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:35:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16000:63:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 873, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16147:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 875, - "indexExpression": { - "argumentTypes": null, - "id": 874, - "name": "deletedTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 865, - "src": "16164:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16147:35:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 876, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16185:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "16147:47:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 878, - "nodeType": "ExpressionStatement", - "src": "16147:47:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 879, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16204:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 881, - "indexExpression": { - "argumentTypes": null, - "id": 880, - "name": "lastToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 855, - "src": "16225:9:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16204:31:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 882, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16238:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 884, - "indexExpression": { - "argumentTypes": null, - "id": 883, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16259:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16238:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16204:62:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 886, - "nodeType": "ExpressionStatement", - "src": "16204:62:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 887, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16401:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 889, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16401:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 893, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16455:1:1", - "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": 890, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16427:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 891, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16427:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "16427:27:1", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16427:30:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16401:56:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 896, - "nodeType": "ExpressionStatement", - "src": "16401:56:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 897, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "16467:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 899, - "indexExpression": { - "argumentTypes": null, - "id": 898, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16488:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16467:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16498:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16467:32:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 902, - "nodeType": "ExpressionStatement", - "src": "16467:32:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 904, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 851, - "src": "16536:6:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 903, - "name": "LogTokenDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "16515:20:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 905, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16515:28:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 906, - "nodeType": "EmitStatement", - "src": "16510:33:1" - } - ] - }, - "documentation": "@notice Deregisters a token, removing it from the list of\n registeredTokens.\n\n /// @param _token The address of the token to deregister.", - "id": 908, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_deregisterToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 852, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 851, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 908, - "src": "15888:14:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15888:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15887:16:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [], - "src": "15912:0:1" - }, - "scope": 959, - "src": "15862:688:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 957, - "nodeType": "Block", - "src": "16775:375:1", - "statements": [ - { - "assignments": [ - 912 - ], - "declarations": [ - { - "constant": false, - "id": 912, - "name": "arrayLength", - "nodeType": "VariableDeclaration", - "scope": 957, - "src": "16812:16:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 911, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16812:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 915, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 913, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16831:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16831:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16812:39:1" - }, - { - "body": { - "id": 949, - "nodeType": "Block", - "src": "16900:210:1", - "statements": [ - { - "assignments": [ - 927 - ], - "declarations": [ - { - "constant": false, - "id": 927, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 949, - "src": "16914:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16914:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 931, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 928, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "16930:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 930, - "indexExpression": { - "argumentTypes": null, - "id": 929, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16944:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16930:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16914:32:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 935, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "16982:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 932, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "16960:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16960:21:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16960:28:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 937, - "nodeType": "ExpressionStatement", - "src": "16960:28:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 938, - "name": "registeredTokenIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 53, - "src": "17002:20:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 940, - "indexExpression": { - "argumentTypes": null, - "id": 939, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17023:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17002:27:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 941, - "name": "registeredTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 49, - "src": "17032:16:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 942, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17032:23:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17002:53:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 944, - "nodeType": "ExpressionStatement", - "src": "17002:53:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 927, - "src": "17093:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 945, - "name": "LogTokenRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "17074:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17074:25:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 948, - "nodeType": "EmitStatement", - "src": "17069:30:1" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 922, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 920, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16878:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 921, - "name": "arrayLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 912, - "src": "16882:11:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16878:15:1", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 950, - "initializationExpression": { - "assignments": [ - 917 - ], - "declarations": [ - { - "constant": false, - "id": 917, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 950, - "src": "16866:6:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 916, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16866:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 919, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16875:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16866:10:1" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 924, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16895:3:1", - "subExpression": { - "argumentTypes": null, - "id": 923, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 917, - "src": "16895:1:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 925, - "nodeType": "ExpressionStatement", - "src": "16895:3:1" - }, - "nodeType": "ForStatement", - "src": "16861:249:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 951, - "name": "pendingTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "17119:13:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 953, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17119:20:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 954, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17142:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17119:24:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 956, - "nodeType": "ExpressionStatement", - "src": "17119:24:1" - } - ] - }, - "documentation": "@notice Updates the list of registeredTokens adding tokens that are to be registered.\n The list of tokens that are pending registration are emptied afterwards.", - "id": 958, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_updateTokenList", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 909, - "nodeType": "ParameterList", - "parameters": [], - "src": "16764:2:1" - }, - "returnParameters": { - "id": 910, - "nodeType": "ParameterList", - "parameters": [], - "src": "16775:0:1" - }, - "scope": 959, - "src": "16739:411:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 960, - "src": "458:16695:1" - } - ], - "src": "0:17154:1" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -25377,118 +979,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T03:47:34.465Z", - "devdoc": { - "methods": { - "blacklist(address)": { - "params": { - "_darknode": "The address of the darknode to blacklist" - } - }, - "claim(address)": { - "params": { - "_darknode": "The address of the darknode to claim" - } - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_cycleDurationSeconds": "The minimum time before a new cycle can occur in seconds", - "_darknodePaymentStore": "The address of the DarknodePaymentStore contract", - "_darknodeRegistry": "The address of the DarknodeRegistry contract" - } - }, - "deposit(uint256,address)": { - "params": { - "_token": "The token address", - "_value": "The amount of token deposit in the token's smallest unit." - } - }, - "deregisterToken(address)": { - "params": { - "_token": "The address of the token to be deregistered." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "registerToken(address)": { - "params": { - "_token": "The address of the token to be registered." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "transferStoreOwnership(address)": { - "params": { - "_newOwner": "The address to transfer the ownership to." - } - }, - "updateBlacklister(address)": { - "params": { - "_addr": "The new Blacklister contract address." - } - }, - "updateCycleDuration(uint256)": { - "params": { - "_durationSeconds": "The amount of time (in seconds) that should have passed before a new cycle can be called." - } - }, - "withdraw(address,address)": { - "params": { - "_darknode": "The address of the darknode", - "_token": "Which token to transfer" - } - } - } - }, - "userdoc": { - "methods": { - "blacklist(address)": { - "notice": "Blacklists a darknode from participating in rewards. " - }, - "changeCycle()": { - "notice": "Changes the current cycle." - }, - "claim(address)": { - "notice": "Claims the rewards allocated to the darknode last cycle and increments the darknode balances. Whitelists the darknode if it hasn't already been whitelisted. If a darknode does not call claim() then the rewards for the previous cycle is lost. " - }, - "claimStoreOwnership()": { - "notice": "Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another DarknodePaymentStore." - }, - "constructor": "The contract constructor. Starts the current cycle using the time of deploy. ", - "currentCycleRewardPool(address)": { - "notice": "The current balance of the contract available as reward for the current cycle" - }, - "deposit(uint256,address)": { - "notice": "Deposits token into the contract to be paid to the Darknodes " - }, - "deregisterToken(address)": { - "notice": "Removes a token from the list of supported tokens. Deregistration is pending until next cycle. " - }, - "registerToken(address)": { - "notice": "Adds tokens to be payable. Registration is pending until next cycle. " - }, - "transferStoreOwnership(address)": { - "notice": "Allows the contract owner to initiate an ownership transfer of the DarknodePaymentStore. " - }, - "updateBlacklister(address)": { - "notice": "Updates the Blacklister contract address. " - }, - "updateCycleDuration(uint256)": { - "notice": "Updates cycle duration " - }, - "withdraw(address,address)": { - "notice": "Transfers the funds allocated to the darknode to the darknode owner. " - } - }, - "notice": "DarknodePayment is responsible for paying off darknodes for their computation." - } + "updatedAt": "2019-06-26T03:47:34.465Z" } \ No newline at end of file diff --git a/build/testnet/DarknodePaymentStore.json b/build/testnet/DarknodePaymentStore.json index c2bcfb98..38733098 100644 --- a/build/testnet/DarknodePaymentStore.json +++ b/build/testnet/DarknodePaymentStore.json @@ -369,8507 +369,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeWhitelistLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"isWhitelisted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeBlacklist\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"totalBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"darknodeWhitelist\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"whitelist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"availableBalance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"incrementDarknodeBalance\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ETHEREUM\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknode\",\"type\":\"address\"}],\"name\":\"isBlacklisted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"availableBalance(address)\":{\"params\":{\"_token\":\"The token to check balance of\"},\"return\":\"The available balance of the contract\"},\"blacklist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to blacklist\"}},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\"}},\"incrementDarknodeBalance(address,address,uint256)\":{\"params\":{\"_amount\":\"The amount that the balance should be incremented by\",\"_darknode\":\"The address of the darknode to increase balance of\",\"_token\":\"The token which the balance should be incremented\"}},\"isBlacklisted(address)\":{\"params\":{\"_darknode\":\"The address of the darknode\"},\"return\":\"true if the darknode is blacklisted\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"isWhitelisted(address)\":{\"params\":{\"_darknode\":\"The address of the darknode\"},\"return\":\"true if the darknode is whitelisted\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"totalBalance(address)\":{\"params\":{\"_token\":\"The token to check balance of\"},\"return\":\"The total balance of the contract\"},\"transfer(address,address,uint256,address)\":{\"params\":{\"_amount\":\"The amount to transfer\",\"_darknode\":\"The address of the darknode\",\"_recipient\":\"The address to withdraw it to\",\"_token\":\"Which token to transfer\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"whitelist(address)\":{\"params\":{\"_darknode\":\"The address of the darknode to whitelist\"}}}},\"userdoc\":{\"methods\":{\"availableBalance(address)\":{\"notice\":\"Get the available balance of the contract for a particular token This is the free amount which has not yet been allocated to darknodes. \"},\"blacklist(address)\":{\"notice\":\"Blacklists a darknode from participating in reward allocation. If the darknode is whitelisted, it is removed from the whitelist and the number of whitelisted nodes is decreased. \"},\"constructor\":\"The contract constructor. \",\"incrementDarknodeBalance(address,address,uint256)\":{\"notice\":\"Increments the amount of funds allocated to a particular darknode. \"},\"isBlacklisted(address)\":{\"notice\":\"Checks to see if a darknode is blacklisted \"},\"isWhitelisted(address)\":{\"notice\":\"Checks to see if a darknode is whitelisted \"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalBalance(address)\":{\"notice\":\"Get the total balance of the contract for a particular token \"},\"transfer(address,address,uint256,address)\":{\"notice\":\"Transfers an amount out of balance to a specified address \"},\"whitelist(address)\":{\"notice\":\"Whitelists a darknode allowing it to participate in reward allocation. \"}},\"notice\":\"DarknodePaymentStore is responsible for tracking black/whitelisted darknodes as well as the balances which have been allocated to the darknodes. It is also responsible for holding the tokens to be paid out to darknodes.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":\"DarknodePaymentStore\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol\":{\"keccak256\":\"0x5fa14e396e45b93df54c1641ce8d0d83fa8ac3ec6679bb969b4088360e2f97d5\",\"urls\":[\"bzzr://de076428cc66269df2aa797cee62012ff56c963eeb1dfee77314731f9ea98200\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol\":{\"keccak256\":\"0xb9e38917912b1ff2e0a1d6996636170c0af89fb412d4168a5dfa6c9a55b2f71a\",\"urls\":[\"bzzr://238d0af72f2ac122a434f414df1707630b5a07fee0e042fdf94b97f202f34ac0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzzr://200d5728b32858918810d8d7a8db1406ee9b157ad5026f050e6d864a696b9080\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0xf3358e5819ca73357abd6c90bdfffd0474af54364897f6b3e3234c4b71fbe9a1\",\"urls\":[\"bzzr://f7f6da60a184233fd666ac44e6fb2bd51ca6ebdc4867a310d368049aa4e62786\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620013a9380380620013a9833981018060405260208110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b5050600180546001600160a01b0319163317908190556040519194506001600160a01b03169250600091507f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38051620000e4906002906020840190620000ec565b505062000191565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200012f57805160ff19168380011785556200015f565b828001600101855582156200015f579182015b828111156200015f57825182559160200191906001019062000142565b506200016d92915062000171565b5090565b6200018e91905b808211156200016d576000815560010162000178565b90565b61120880620001a16000396000f3fe60806040526004361061011f5760003560e01c80639a4d6f3b116100a0578063f7cdf47c11610064578063f7cdf47c146103e2578063f9ce7813146103f7578063f9f92be414610440578063fe575a8714610473578063ffa1ad74146104a65761011f565b80639a4d6f3b146102d35780639b19251a14610306578063a0821be314610339578063d23b90a51461036c578063f2fde38b146103af5761011f565b80636eacd398116100e75780636eacd3981461020a57806370324b771461023d578063715018a6146102785780638da5cb5b1461028d5780638f32d59b146102be5761011f565b80630483a7f6146101215780631fc6fe8e146101665780633af32abf1461017b5780634c89d726146101c25780634e71e0c8146101f5575b005b34801561012d57600080fd5b506101546004803603602081101561014457600080fd5b50356001600160a01b0316610530565b60408051918252519081900360200190f35b34801561017257600080fd5b50610154610542565b34801561018757600080fd5b506101ae6004803603602081101561019e57600080fd5b50356001600160a01b0316610548565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b50610154600480360360208110156101e557600080fd5b50356001600160a01b0316610569565b34801561020157600080fd5b5061011f61057b565b34801561021657600080fd5b506101546004803603602081101561022d57600080fd5b50356001600160a01b0316610642565b34801561024957600080fd5b506101546004803603604081101561026057600080fd5b506001600160a01b03813581169160200135166106ed565b34801561028457600080fd5b5061011f61070a565b34801561029957600080fd5b506102a261079e565b604080516001600160a01b039092168252519081900360200190f35b3480156102ca57600080fd5b506101ae6107ad565b3480156102df57600080fd5b50610154600480360360208110156102f657600080fd5b50356001600160a01b03166107be565b34801561031257600080fd5b5061011f6004803603602081101561032957600080fd5b50356001600160a01b03166107d0565b34801561034557600080fd5b506101546004803603602081101561035c57600080fd5b50356001600160a01b03166108fb565b34801561037857600080fd5b5061011f6004803603606081101561038f57600080fd5b506001600160a01b03813581169160208101359091169060400135610933565b3480156103bb57600080fd5b5061011f600480360360208110156103d257600080fd5b50356001600160a01b0316610acf565b3480156103ee57600080fd5b506102a2610b3b565b34801561040357600080fd5b5061011f6004803603608081101561041a57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610b53565b34801561044c57600080fd5b5061011f6004803603602081101561046357600080fd5b50356001600160a01b0316610d26565b34801561047f57600080fd5b506101ae6004803603602081101561049657600080fd5b50356001600160a01b0316610e2b565b3480156104b257600080fd5b506104bb610e48565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60056020526000908152604090205481565b60035481565b6001600160a01b03811660009081526007602052604090205415155b919050565b60066020526000908152604090205481565b6000546001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561067157503031610564565b60408051600160e01b6370a0823102815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50519050610564565b600460209081526000928352604080842090915290825290205481565b6107126107ad565b6107545760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60076020526000908152604090205481565b6107d86107ad565b61081a5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b61082381610e2b565b156108785760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b61088181610548565b156108d65760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020429055600380546001019055565b6001600160a01b03811660009081526005602052604081205461092d9061092184610642565b9063ffffffff610ed316565b92915050565b61093b6107ad565b61097d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600081116109d55760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b806109df836108fb565b1015610a355760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260046020908152604080832093861683529290522054610a6b908263ffffffff610f3316565b6001600160a01b0380851660009081526004602090815260408083209387168352928152828220939093556005909252902054610aae908263ffffffff610f3316565b6001600160a01b039092166000908152600560205260409020919091555050565b610ad76107ad565b610b195760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b610b5b6107ad565b610b9d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054821115610c1a5760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e74206461726b6e6f64652062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054610c50908363ffffffff610ed316565b6001600160a01b0380861660009081526004602090815260408083209388168352928152828220939093556005909252902054610c93908363ffffffff610ed316565b6001600160a01b03841660008181526005602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d06576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b50610d20565b610d206001600160a01b038416828463ffffffff610f9716565b50505050565b610d2e6107ad565b610d705760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b610d7981610e2b565b15610dce5760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c726561647920626c61636b6c697374656400000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020429055610df281610548565b15610e28576001600160a01b038116600090815260076020526040812055600354610e2490600163ffffffff610ed316565b6003555b50565b6001600160a01b0316600090815260066020526040902054151590565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b600082821115610f2d5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610f905760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610fec908490610ff1565b505050565b611003826001600160a01b03166111b6565b6110575760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110955780518252601f199092019160209182019101611076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110f7576040519150601f19603f3d011682016040523d82523d6000602084013e6110fc565b606091505b50915091508161114d5760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115610d205780806020019051602081101561116957600080fd5b5051610d205760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b3b15159056fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058205bdd576bfc5c0fc8a0e9dc975455405dd3473ee2d67ad2b9f9d09b19e115e6610029", - "deployedBytecode": "0x60806040526004361061011f5760003560e01c80639a4d6f3b116100a0578063f7cdf47c11610064578063f7cdf47c146103e2578063f9ce7813146103f7578063f9f92be414610440578063fe575a8714610473578063ffa1ad74146104a65761011f565b80639a4d6f3b146102d35780639b19251a14610306578063a0821be314610339578063d23b90a51461036c578063f2fde38b146103af5761011f565b80636eacd398116100e75780636eacd3981461020a57806370324b771461023d578063715018a6146102785780638da5cb5b1461028d5780638f32d59b146102be5761011f565b80630483a7f6146101215780631fc6fe8e146101665780633af32abf1461017b5780634c89d726146101c25780634e71e0c8146101f5575b005b34801561012d57600080fd5b506101546004803603602081101561014457600080fd5b50356001600160a01b0316610530565b60408051918252519081900360200190f35b34801561017257600080fd5b50610154610542565b34801561018757600080fd5b506101ae6004803603602081101561019e57600080fd5b50356001600160a01b0316610548565b604080519115158252519081900360200190f35b3480156101ce57600080fd5b50610154600480360360208110156101e557600080fd5b50356001600160a01b0316610569565b34801561020157600080fd5b5061011f61057b565b34801561021657600080fd5b506101546004803603602081101561022d57600080fd5b50356001600160a01b0316610642565b34801561024957600080fd5b506101546004803603604081101561026057600080fd5b506001600160a01b03813581169160200135166106ed565b34801561028457600080fd5b5061011f61070a565b34801561029957600080fd5b506102a261079e565b604080516001600160a01b039092168252519081900360200190f35b3480156102ca57600080fd5b506101ae6107ad565b3480156102df57600080fd5b50610154600480360360208110156102f657600080fd5b50356001600160a01b03166107be565b34801561031257600080fd5b5061011f6004803603602081101561032957600080fd5b50356001600160a01b03166107d0565b34801561034557600080fd5b506101546004803603602081101561035c57600080fd5b50356001600160a01b03166108fb565b34801561037857600080fd5b5061011f6004803603606081101561038f57600080fd5b506001600160a01b03813581169160208101359091169060400135610933565b3480156103bb57600080fd5b5061011f600480360360208110156103d257600080fd5b50356001600160a01b0316610acf565b3480156103ee57600080fd5b506102a2610b3b565b34801561040357600080fd5b5061011f6004803603608081101561041a57600080fd5b506001600160a01b03813581169160208101358216916040820135916060013516610b53565b34801561044c57600080fd5b5061011f6004803603602081101561046357600080fd5b50356001600160a01b0316610d26565b34801561047f57600080fd5b506101ae6004803603602081101561049657600080fd5b50356001600160a01b0316610e2b565b3480156104b257600080fd5b506104bb610e48565b6040805160208082528351818301528351919283929083019185019080838360005b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60056020526000908152604090205481565b60035481565b6001600160a01b03811660009081526007602052604090205415155b919050565b60066020526000908152604090205481565b6000546001600160a01b031633146105dd5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b60006001600160a01b03821673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561067157503031610564565b60408051600160e01b6370a0823102815230600482015290516001600160a01b038416916370a08231916024808301926020929190829003018186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d60208110156106e457600080fd5b50519050610564565b600460209081526000928352604080842090915290825290205481565b6107126107ad565b6107545760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60076020526000908152604090205481565b6107d86107ad565b61081a5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b61082381610e2b565b156108785760408051600160e51b62461bcd02815260206004820152601760248201527f6461726b6e6f646520697320626c61636b6c6973746564000000000000000000604482015290519081900360640190fd5b61088181610548565b156108d65760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c72656164792077686974656c697374656400000000604482015290519081900360640190fd5b6001600160a01b03166000908152600760205260409020429055600380546001019055565b6001600160a01b03811660009081526005602052604081205461092d9061092184610642565b9063ffffffff610ed316565b92915050565b61093b6107ad565b61097d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600081116109d55760408051600160e51b62461bcd02815260206004820152600e60248201527f696e76616c696420616d6f756e74000000000000000000000000000000000000604482015290519081900360640190fd5b806109df836108fb565b1015610a355760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808416600090815260046020908152604080832093861683529290522054610a6b908263ffffffff610f3316565b6001600160a01b0380851660009081526004602090815260408083209387168352928152828220939093556005909252902054610aae908263ffffffff610f3316565b6001600160a01b039092166000908152600560205260409020919091555050565b610ad76107ad565b610b195760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b610b5b6107ad565b610b9d5760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054821115610c1a5760408051600160e51b62461bcd02815260206004820152601d60248201527f696e73756666696369656e74206461726b6e6f64652062616c616e6365000000604482015290519081900360640190fd5b6001600160a01b03808516600090815260046020908152604080832093871683529290522054610c50908363ffffffff610ed316565b6001600160a01b0380861660009081526004602090815260408083209388168352928152828220939093556005909252902054610c93908363ffffffff610ed316565b6001600160a01b03841660008181526005602052604090209190915573eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415610d06576040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015610d00573d6000803e3d6000fd5b50610d20565b610d206001600160a01b038416828463ffffffff610f9716565b50505050565b610d2e6107ad565b610d705760408051600160e51b62461bcd02815260206004820152601760248201526000805160206111bd833981519152604482015290519081900360640190fd5b610d7981610e2b565b15610dce5760408051600160e51b62461bcd02815260206004820152601c60248201527f6461726b6e6f646520616c726561647920626c61636b6c697374656400000000604482015290519081900360640190fd5b6001600160a01b0381166000908152600660205260409020429055610df281610548565b15610e28576001600160a01b038116600090815260076020526040812055600354610e2490600163ffffffff610ed316565b6003555b50565b6001600160a01b0316600090815260066020526040902054151590565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b600082821115610f2d5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610f905760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0316600160e01b63a9059cbb02179052610fec908490610ff1565b505050565b611003826001600160a01b03166111b6565b6110575760408051600160e51b62461bcd02815260206004820152600f60248201527f746f6b656e206e6f7420666f756e640000000000000000000000000000000000604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106110955780518252601f199092019160209182019101611076565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d80600081146110f7576040519150601f19603f3d011682016040523d82523d6000602084013e6110fc565b606091505b50915091508161114d5760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b805115610d205780806020019051602081101561116957600080fd5b5051610d205760408051600160e51b62461bcd02815260206004820152601160248201526001607a1b701d1bdad95b8818d85b1b0819985a5b195902604482015290519081900360640190fd5b3b15159056fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058205bdd576bfc5c0fc8a0e9dc975455405dd3473ee2d67ad2b9f9d09b19e115e6610029", - "sourceMap": "559:5552:2:-;;;1561:92;8:9:-1;5:2;;;30:1;27;20:12;5:2;1561:92:2;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1561:92: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;-1:-1;;528:6:12;:19;;-1:-1:-1;;;;;;528:19:12;537:10;528:19;;;;;562:40;;1561:92:2;;-1:-1:-1;;;;;;595:6:12;;-1:-1:-1;528:6:12;;-1:-1:-1;562:40:12;;528:6;;562:40;1628:18:2;;;;:7;;:18;;;;;:::i;:::-;;1561:92;559:5552;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;559:5552:2;;;-1:-1:-1;559:5552:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "559:5552:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:49;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1157:49:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1157:49:2;-1:-1:-1;;;;;1157:49:2;;:::i;:::-;;;;;;;;;;;;;;;;929:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;929:38:2;;;:::i;2255:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2255:126:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2255:126:2;-1:-1:-1;;;;;2255:126:2;;:::i;:::-;;;;;;;;;;;;;;;;;;1271:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1271:52:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1271:52:2;-1:-1:-1;;;;;1271:52:2;;:::i;2166:177:12:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2166:177:12;;;:::i;2574:237:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2574:237:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2574:237:2;-1:-1:-1;;;;;2574:237:2;;:::i;1030:71::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1030:71:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1030:71:2;;;;;;;;;;:::i;1688:137:12:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1688:137:12;;;:::i;672:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;672:77:12;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:12;;;;;;;;;;;;;;1244:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1244:90:12;;;:::i;1388:52:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1388:52:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1388:52:2;-1:-1:-1;;;;;1388:52:2;;:::i;4212:303::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4212:303:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4212:303:2;-1:-1:-1;;;;;4212:303:2;;:::i;3115:144::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3115:144:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3115:144:2;-1:-1:-1;;;;;3115:144:2;;:::i;4852:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4852:414:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4852:414:2;;;;;;;;;;;;;;;;;:::i;1975:101:12:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1975:101:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:12;-1:-1:-1;;;;;1975:101:12;;:::i;803:77:2:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;803:77:2;;;:::i;5555:553::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5555:553:2;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;5555:553:2;;;;;;;;;;;;;;;;;;;;;;:::i;3565:464::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3565:464:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3565:464:2;-1:-1:-1;;;;;3565:464:2;;:::i;1951:126::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1951:126:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1951:126:2;-1:-1:-1;;;;;1951:126:2;;:::i;687:21::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;687:21:2;;;:::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;687:21:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1157:49;;;;;;;;;;;;;:::o;929:38::-;;;;:::o;2255:126::-;-1:-1:-1;;;;;2341:28:2;;2318:4;2341:28;;;:17;:28;;;;;;:33;;2255:126;;;;:::o;1271:52::-;;;;;;;;;;;;;:::o;2166:177:12:-;1091:13;;-1:-1:-1;;;;;1091:13:12;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:12;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:12;;;-1:-1:-1;;;;;2289:13:12;;2280:22;;;;2310:26;;;2166:177::o;2574:237:2:-;2633:7;-1:-1:-1;;;;;2656:18:2;;838:42;2656:18;2652:153;;;-1:-1:-1;2705:4:2;2697:21;2690:28;;2652:153;2756:38;;;-1:-1:-1;;;;;2756:38:2;;2788:4;2756:38;;;;;;-1:-1:-1;;;;;2756:23:2;;;;;:38;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2756:38:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2756:38:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2756:38:2;;-1:-1:-1;2749:45:2;;1030:71;;;;;;;;;;;;;;;;;;;;;;;;:::o;1688:137:12:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:12;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:12;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:12;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:12;1307:10;:20;;1244:90::o;1388:52:2:-;;;;;;;;;;;;;:::o;4212:303::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;4288:24:2;4302:9;4288:13;:24::i;:::-;4287:25;4279:61;;;;;-1:-1:-1;;;;;4279:61:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;4359:24;4373:9;4359:13;:24::i;:::-;4358:25;4350:66;;;;;-1:-1:-1;;;;;4350:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4427:28:2;;;;;:17;:28;;;;;4458:15;4427:46;;4483:23;:25;;;;;;4212:303::o;3115:144::-;-1:-1:-1;;;;;3229:22:2;;3178:7;3229:22;;;:14;:22;;;;;;3204:48;;:20;3244:6;3204:12;:20::i;:::-;:24;:48;:24;:48;:::i;:::-;3197:55;3115:144;-1:-1:-1;;3115:144:2:o;4852:414::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;4985:1:2;4975:7;:11;4967:38;;;;;-1:-1:-1;;;;;4967:38:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;5051:7;5023:24;5040:6;5023:16;:24::i;:::-;:35;;5015:77;;;;;-1:-1:-1;;;;;5015:77:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5141:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:48;;5181:7;5141:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;5103:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;;:86;;;;5224:14;:22;;;;;;:35;;5251:7;5224:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;5199:22:2;;;;;;;:14;:22;;;;;:60;;;;-1:-1:-1;;4852:414:2:o;1975:101:12:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:12;-1:-1:-1;;;;;2045:24:12;;;;;;;;;;1975:101::o;803:77:2:-;838:42;803:77;:::o;5555:553::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;5690:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:46;-1:-1:-1;5690:46:2;5682:88;;;;;-1:-1:-1;;;;;5682:88:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5818:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;:48;;5858:7;5818:48;:39;:48;:::i;:::-;-1:-1:-1;;;;;5780:27:2;;;;;;;:16;:27;;;;;;;;:35;;;;;;;;;;;:86;;;;5901:14;:22;;;;;;:35;;5928:7;5901:35;:26;:35;:::i;:::-;-1:-1:-1;;;;;5876:22:2;;;;;;:14;:22;;;;;:60;;;;838:42;5951:18;5947:155;;;5985:28;;-1:-1:-1;;;;;5985:19:2;;;:28;;;;;6005:7;;5985:28;;;;6005:7;5985:19;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5985:28:2;5947:155;;;6044:47;-1:-1:-1;;;;;6044:26:2;;6071:10;6083:7;6044:47;:26;:47;:::i;:::-;5555:553;;;;:::o;3565:464::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3641:24:2;3655:9;3641:13;:24::i;:::-;3640:25;3632:66;;;;;-1:-1:-1;;;;;3632:66:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3708:28:2;;;;;;:17;:28;;;;;3739:15;3708:46;;3805:24;3726:9;3805:13;:24::i;:::-;3801:222;;;-1:-1:-1;;;;;3845:28:2;;3876:1;3845:28;;;:17;:28;;;;;:32;3982:23;;:30;;4010:1;3982:30;:27;:30;:::i;:::-;3956:23;:56;3801:222;3565:464;:::o;1951:126::-;-1:-1:-1;;;;;2037:28:2;2014:4;2037:28;;;:17;:28;;;;;;:33;;;1951:126::o;687:21::-;;;;;;;;;;;;;;-1:-1:-1;;687:21:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;944:174:14:-;1052:58;;;-1:-1:-1;;;;;1052:58:14;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1052:58:14;;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;179:29;160:49;;1026:85:14;;1045:5;;1026:18;:85::i;:::-;944:174;;;:::o;3398:930::-;3941:27;3949:5;-1:-1:-1;;;;;3941:25:14;;:27::i;:::-;3933:55;;;;;-1:-1:-1;;;;;3933:55:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;4059:12;4073:23;4108:5;-1:-1:-1;;;;;4100:19:14;4120:4;4100:25;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;4100:25:14;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;4058:67:14;;;;4143:7;4135:37;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;-1:-1:-1;;;;;4135:37:14;;;;;;;;;;;;;;;4187:17;;:21;4183:139;;4270:10;4259:30;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4259:30:14;4251:60;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;-1:-1:-1;;;;;4251:60:14;;;;;;;;;;;;;;542:413:41;902:20;940:8;;;542:413::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\nimport \"../libraries/Claimable.sol\";\nimport \"../libraries/CompatibleERC20Functions.sol\";\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\n\n/// @notice DarknodePaymentStore is responsible for tracking black/whitelisted\n/// darknodes as well as the balances which have been allocated to the\n/// darknodes. It is also responsible for holding the tokens to be paid\n/// out to darknodes.\ncontract DarknodePaymentStore is Claimable {\n using SafeMath for uint256;\n using CompatibleERC20Functions for ERC20;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice The special address for Ether.\n address constant public ETHEREUM = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;\n\n /// @notice The size of the whitelist\n uint256 public darknodeWhitelistLength;\n\n /// @notice Mapping of darknode -> token -> balance\n mapping(address => mapping(address => uint256)) public darknodeBalances;\n\n /// @notice Mapping of token -> lockedAmount\n mapping(address => uint256) public lockedBalances;\n\n /// @notice mapping of darknode -> blacklistTimestamp\n mapping(address => uint256) public darknodeBlacklist;\n\n /// @notice mapping of darknode -> whitelistTimestamp\n mapping(address => uint256) public darknodeWhitelist;\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n constructor(\n string memory _VERSION\n ) public {\n VERSION = _VERSION;\n }\n\n /// @notice Allow direct payments to be made to the DarknodePaymentStore.\n function () external payable {\n }\n\n /// @notice Checks to see if a darknode is blacklisted\n ///\n /// @param _darknode The address of the darknode\n /// @return true if the darknode is blacklisted\n function isBlacklisted(address _darknode) public view returns (bool) {\n return darknodeBlacklist[_darknode] != 0;\n }\n\n /// @notice Checks to see if a darknode is whitelisted\n ///\n /// @param _darknode The address of the darknode\n /// @return true if the darknode is whitelisted\n function isWhitelisted(address _darknode) public view returns (bool) {\n return darknodeWhitelist[_darknode] != 0;\n }\n\n /// @notice Get the total balance of the contract for a particular token\n ///\n /// @param _token The token to check balance of\n /// @return The total balance of the contract\n function totalBalance(address _token) public view returns (uint256) {\n if (_token == ETHEREUM) {\n return address(this).balance;\n } else {\n return ERC20(_token).balanceOf(address(this));\n }\n }\n\n /// @notice Get the available balance of the contract for a particular token\n /// This is the free amount which has not yet been allocated to\n /// darknodes.\n ///\n /// @param _token The token to check balance of\n /// @return The available balance of the contract\n function availableBalance(address _token) public view returns (uint256) {\n return totalBalance(_token).sub(lockedBalances[_token]);\n }\n\n /// @notice Blacklists a darknode from participating in reward allocation.\n /// If the darknode is whitelisted, it is removed from the whitelist\n /// and the number of whitelisted nodes is decreased.\n ///\n /// @param _darknode The address of the darknode to blacklist\n function blacklist(address _darknode) external onlyOwner {\n require(!isBlacklisted(_darknode), \"darknode already blacklisted\");\n darknodeBlacklist[_darknode] = block.timestamp;\n\n // Unwhitelist if necessary\n if (isWhitelisted(_darknode)) {\n darknodeWhitelist[_darknode] = 0;\n // Use SafeMath when subtracting to avoid underflows\n darknodeWhitelistLength = darknodeWhitelistLength.sub(1);\n }\n }\n\n /// @notice Whitelists a darknode allowing it to participate in reward\n /// allocation.\n ///\n /// @param _darknode The address of the darknode to whitelist\n function whitelist(address _darknode) external onlyOwner {\n require(!isBlacklisted(_darknode), \"darknode is blacklisted\");\n require(!isWhitelisted(_darknode), \"darknode already whitelisted\");\n\n darknodeWhitelist[_darknode] = block.timestamp;\n darknodeWhitelistLength++;\n }\n\n /// @notice Increments the amount of funds allocated to a particular\n /// darknode.\n ///\n /// @param _darknode The address of the darknode to increase balance of\n /// @param _token The token which the balance should be incremented\n /// @param _amount The amount that the balance should be incremented by\n function incrementDarknodeBalance(address _darknode, address _token, uint256 _amount) external onlyOwner {\n require(_amount > 0, \"invalid amount\");\n require(availableBalance(_token) >= _amount, \"insufficient contract balance\");\n\n darknodeBalances[_darknode][_token] = darknodeBalances[_darknode][_token].add(_amount);\n lockedBalances[_token] = lockedBalances[_token].add(_amount);\n }\n\n /// @notice Transfers an amount out of balance to a specified address\n ///\n /// @param _darknode The address of the darknode\n /// @param _token Which token to transfer\n /// @param _amount The amount to transfer\n /// @param _recipient The address to withdraw it to\n function transfer(address _darknode, address _token, uint256 _amount, address payable _recipient) external onlyOwner {\n require(darknodeBalances[_darknode][_token] >= _amount, \"insufficient darknode balance\");\n darknodeBalances[_darknode][_token] = darknodeBalances[_darknode][_token].sub(_amount);\n lockedBalances[_token] = lockedBalances[_token].sub(_amount);\n\n if (_token == ETHEREUM) {\n _recipient.transfer(_amount);\n } else {\n ERC20(_token).safeTransfer(_recipient, _amount);\n }\n }\n\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "exportedSymbols": { - "DarknodePaymentStore": [ - 1287 - ] - }, - "id": 1288, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 961, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 962, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7535, - "src": "25:59:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 963, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 8043, - "src": "85:63:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 964, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4457, - "src": "150:36:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 965, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4811, - "src": "187:51:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 966, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 2391, - "src": "239:50:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 967, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4456, - "src": "592:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4456", - "typeString": "contract Claimable" - } - }, - "id": 968, - "nodeType": "InheritanceSpecifier", - "src": "592:9:2" - } - ], - "contractDependencies": [ - 4456 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePaymentStore is responsible for tracking black/whitelisted\n darknodes as well as the balances which have been allocated to the\n darknodes. It is also responsible for holding the tokens to be paid\n out to darknodes.", - "fullyImplemented": true, - "id": 1287, - "linearizedBaseContracts": [ - 1287, - 4456 - ], - "name": "DarknodePaymentStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 971, - "libraryName": { - "contractScope": null, - "id": 969, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "614:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "608:27:2", - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 974, - "libraryName": { - "contractScope": null, - "id": 972, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4810, - "src": "646:24:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4810", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "640:41:2", - "typeName": { - "contractScope": null, - "id": 973, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8042, - "src": "675:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 976, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "687:21:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 975, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "687:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 979, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "803:77:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "838:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 981, - "name": "darknodeWhitelistLength", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "929:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "929:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 987, - "name": "darknodeBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1030:71:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 986, - "keyType": { - "id": 982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1030:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 985, - "keyType": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1049:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1068:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 991, - "name": "lockedBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1157:49:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 990, - "keyType": { - "id": 988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1157:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 995, - "name": "darknodeBlacklist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1271:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 994, - "keyType": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1271:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1290:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 999, - "name": "darknodeWhitelist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1388:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 998, - "keyType": { - "id": 996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1388:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "1618:35:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1004, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "1628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1005, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1638:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1628:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1628:18:2" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.", - "id": 1009, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "1582:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1582:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:38:2" - }, - "returnParameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "1618:0:2" - }, - "scope": 1287, - "src": "1561:92:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1012, - "nodeType": "Block", - "src": "1766:7:2", - "statements": [] - }, - "documentation": "@notice Allow direct payments to be made to the DarknodePaymentStore.", - "id": 1013, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [], - "src": "1746:2:2" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:2" - }, - "scope": 1287, - "src": "1737:36:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "2020:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1020, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "2037:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "2055:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2037:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2069:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2037:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1019, - "id": 1025, - "nodeType": "Return", - "src": "2030:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is blacklisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is blacklisted", - "id": 1027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isBlacklisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1015, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "1974:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1973:19:2" - }, - "returnParameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1018, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "2014:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2013:6:2" - }, - "scope": 1287, - "src": "1951:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "2324:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1034, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "2341:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1036, - "indexExpression": { - "argumentTypes": null, - "id": 1035, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "2359:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2341:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2373:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2341:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1033, - "id": 1039, - "nodeType": "Return", - "src": "2334:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is whitelisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is whitelisted", - "id": 1041, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1029, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2278:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2277:19:2" - }, - "returnParameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2318:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1031, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2318:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:6:2" - }, - "scope": 1287, - "src": "2255:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "2642:169:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2656:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2656:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1066, - "nodeType": "Block", - "src": "2735:70:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1062, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "2788:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2780:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1058, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2762:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1057, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8042, - "src": "2756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8042_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 7686, - "src": "2756:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1065, - "nodeType": "Return", - "src": "2749:45:2" - } - ] - }, - "id": 1067, - "nodeType": "IfStatement", - "src": "2652:153:2", - "trueBody": { - "id": 1056, - "nodeType": "Block", - "src": "2676:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "2705:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2697:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1055, - "nodeType": "Return", - "src": "2690:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Get the total balance of the contract for a particular token\n\n /// @param _token The token to check balance of\n @return The total balance of the contract", - "id": 1069, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2596:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2595:16:2" - }, - "returnParameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2633:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2632:9:2" - }, - "scope": 1287, - "src": "2574:237:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1085, - "nodeType": "Block", - "src": "3187:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1080, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3229:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1082, - "indexExpression": { - "argumentTypes": null, - "id": 1081, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3244:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3229:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3217:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1076, - "name": "totalBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "3204:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "3204:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1075, - "id": 1084, - "nodeType": "Return", - "src": "3197:55:2" - } - ] - }, - "documentation": "@notice Get the available balance of the contract for a particular token\n This is the free amount which has not yet been allocated to\n darknodes.\n\n /// @param _token The token to check balance of\n @return The available balance of the contract", - "id": 1086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3141:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3140:16:2" - }, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3178:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3177:9:2" - }, - "scope": 1287, - "src": "3115:144:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "3622:407:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3640:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3655:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1094, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "3641:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3641:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c726561647920626c61636b6c6973746564", - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3667:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - }, - "value": "darknode already blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - } - ], - "id": 1093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3632:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1100, - "nodeType": "ExpressionStatement", - "src": "3632:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1101, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "3708:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1103, - "indexExpression": { - "argumentTypes": null, - "id": 1102, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3726:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3708:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1104, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "3739:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3708:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "3708:46:2" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1109, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3819:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1108, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "3805:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3805:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1125, - "nodeType": "IfStatement", - "src": "3801:222:2", - "trueBody": { - "id": 1124, - "nodeType": "Block", - "src": "3831:192:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1111, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3845:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1113, - "indexExpression": { - "argumentTypes": null, - "id": 1112, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3863:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3845:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3876:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3845:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "3845:32:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1117, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3956:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4010:1:2", - "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": 1118, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3982:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "3982:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3982:30:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3956:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "3956:56:2" - } - ] - } - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in reward allocation.\n If the darknode is whitelisted, it is removed from the whitelist\n and the number of whitelisted nodes is decreased.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 1127, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1091, - "modifierName": { - "argumentTypes": null, - "id": 1090, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3612:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3612:9:2" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "3584:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3584:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3583:19:2" - }, - "returnParameters": { - "id": 1092, - "nodeType": "ParameterList", - "parameters": [], - "src": "3622:0:2" - }, - "scope": 1287, - "src": "3565:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1160, - "nodeType": "Block", - "src": "4269:246:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4287:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1136, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4302:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1135, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "4288:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4314:25:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4279:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "4279:61:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4358:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4373:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1143, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "4359:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c72656164792077686974656c6973746564", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4385:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - }, - "value": "darknode already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - } - ], - "id": 1142, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4350:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1149, - "nodeType": "ExpressionStatement", - "src": "4350:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "4427:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4427:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "4458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4458:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4427:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1156, - "nodeType": "ExpressionStatement", - "src": "4427:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4483:25:2", - "subExpression": { - "argumentTypes": null, - "id": 1157, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4483:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "nodeType": "ExpressionStatement", - "src": "4483:25:2" - } - ] - }, - "documentation": "@notice Whitelists a darknode allowing it to participate in reward\n allocation.\n\n /// @param _darknode The address of the darknode to whitelist", - "id": 1161, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4259:9:2" - } - ], - "name": "whitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "4231:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4230:19:2" - }, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "4269:0:2" - }, - "scope": 1287, - "src": "4212:303:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "4957:309:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "4975:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4985:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4975:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420616d6f756e74", - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:16:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - }, - "value": "invalid amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - } - ], - "id": 1172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4967:38:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "4967:38:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5040:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1180, - "name": "availableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "5023:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1183, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5023:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420636f6e74726163742062616c616e6365", - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5060:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - }, - "value": "insufficient contract balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - } - ], - "id": 1179, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5015:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:77:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "5015:77:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1188, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5103:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5120:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5103:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1192, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5103:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1199, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1193, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5141:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1195, - "indexExpression": { - "argumentTypes": null, - "id": 1194, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5158:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1197, - "indexExpression": { - "argumentTypes": null, - "id": 1196, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5169:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "5141:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5103:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "5103:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1203, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5199:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1205, - "indexExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5214:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5199:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1206, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5224:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1208, - "indexExpression": { - "argumentTypes": null, - "id": 1207, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5239:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5224:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "5224:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5224:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1213, - "nodeType": "ExpressionStatement", - "src": "5199:60:2" - } - ] - }, - "documentation": "@notice Increments the amount of funds allocated to a particular\n darknode.\n\n /// @param _darknode The address of the darknode to increase balance of\n @param _token The token which the balance should be incremented\n @param _amount The amount that the balance should be incremented by", - "id": 1215, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1169, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4947:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4947:9:2" - } - ], - "name": "incrementDarknodeBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4886:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4886:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1165, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4905:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4905:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1167, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4921:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4921:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4885:52:2" - }, - "returnParameters": { - "id": 1171, - "nodeType": "ParameterList", - "parameters": [], - "src": "4957:0:2" - }, - "scope": 1287, - "src": "4852:414:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "5672:436:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5690:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1231, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5707:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1232, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5718:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1234, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5729:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5690:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e74206461726b6e6f64652062616c616e6365", - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5738:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - }, - "value": "insufficient darknode balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5682:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5682:88:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1238, - "nodeType": "ExpressionStatement", - "src": "5682:88:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1239, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5780:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1242, - "indexExpression": { - "argumentTypes": null, - "id": 1240, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5797:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5780:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1243, - "indexExpression": { - "argumentTypes": null, - "id": 1241, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5808:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5780:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5858:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1244, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5818:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1246, - "indexExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5835:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1248, - "indexExpression": { - "argumentTypes": null, - "id": 1247, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5846:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "5818:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5780:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1253, - "nodeType": "ExpressionStatement", - "src": "5780:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1254, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5876:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1256, - "indexExpression": { - "argumentTypes": null, - "id": 1255, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5891:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5876:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1261, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5928:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1257, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5901:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1259, - "indexExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5901:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "5901:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5876:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "5876:60:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1265, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5951:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1266, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "5961:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5951:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1283, - "nodeType": "Block", - "src": "6030:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "6071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6083:7:2", - "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, - "id": 1276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "6050:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1275, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8042, - "src": "6044:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8042_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - }, - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4553, - "src": "6044:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8302_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$8302_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "6044:47:2" - } - ] - }, - "id": 1284, - "nodeType": "IfStatement", - "src": "5947:155:2", - "trueBody": { - "id": 1274, - "nodeType": "Block", - "src": "5971:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1271, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6005:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1268, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "5985:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5985:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5985:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1273, - "nodeType": "ExpressionStatement", - "src": "5985:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Transfers an amount out of balance to a specified address\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer\n @param _amount The amount to transfer\n @param _recipient The address to withdraw it to", - "id": 1286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1226, - "modifierName": { - "argumentTypes": null, - "id": 1225, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5662:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5662:9:2" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5573:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5592:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5592:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5608:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5608:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5625:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5625:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5572:80:2" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [], - "src": "5672:0:2" - }, - "scope": 1287, - "src": "5555:553:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1288, - "src": "559:5552:2" - } - ], - "src": "0:6112:2" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodePayment/DarknodePaymentStore.sol", - "exportedSymbols": { - "DarknodePaymentStore": [ - 1287 - ] - }, - "id": 1288, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 961, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:2" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 962, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 7535, - "src": "25:59:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 963, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 8043, - "src": "85:63:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 964, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4457, - "src": "150:36:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/CompatibleERC20Functions.sol", - "file": "../libraries/CompatibleERC20Functions.sol", - "id": 965, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 4811, - "src": "187:51:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 966, - "nodeType": "ImportDirective", - "scope": 1288, - "sourceUnit": 2391, - "src": "239:50:2", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 967, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4456, - "src": "592:9:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4456", - "typeString": "contract Claimable" - } - }, - "id": 968, - "nodeType": "InheritanceSpecifier", - "src": "592:9:2" - } - ], - "contractDependencies": [ - 4456 - ], - "contractKind": "contract", - "documentation": "@notice DarknodePaymentStore is responsible for tracking black/whitelisted\n darknodes as well as the balances which have been allocated to the\n darknodes. It is also responsible for holding the tokens to be paid\n out to darknodes.", - "fullyImplemented": true, - "id": 1287, - "linearizedBaseContracts": [ - 1287, - 4456 - ], - "name": "DarknodePaymentStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 971, - "libraryName": { - "contractScope": null, - "id": 969, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "614:8:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "608:27:2", - "typeName": { - "id": 970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 974, - "libraryName": { - "contractScope": null, - "id": 972, - "name": "CompatibleERC20Functions", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4810, - "src": "646:24:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_CompatibleERC20Functions_$4810", - "typeString": "library CompatibleERC20Functions" - } - }, - "nodeType": "UsingForDirective", - "src": "640:41:2", - "typeName": { - "contractScope": null, - "id": 973, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8042, - "src": "675:5:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - } - }, - { - "constant": false, - "id": 976, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "687:21:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 975, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "687:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 979, - "name": "ETHEREUM", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "803:77:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 977, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "803:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "307845656565654565656545654565654565456545656545454565656565456565656565656545456545", - "id": 978, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "838:42:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "value": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 981, - "name": "darknodeWhitelistLength", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "929:38:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "929:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 987, - "name": "darknodeBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1030:71:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 986, - "keyType": { - "id": 982, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1030:47:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 985, - "keyType": { - "id": 983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1057:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1049:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1068:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 991, - "name": "lockedBalances", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1157:49:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 990, - "keyType": { - "id": 988, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1165:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1157:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1176:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 995, - "name": "darknodeBlacklist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1271:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 994, - "keyType": { - "id": 992, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1271:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1290:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 999, - "name": "darknodeWhitelist", - "nodeType": "VariableDeclaration", - "scope": 1287, - "src": "1388:52:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 998, - "keyType": { - "id": 996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1396:7:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1388:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 997, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1407:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1008, - "nodeType": "Block", - "src": "1618:35:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1004, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 976, - "src": "1628:7:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1005, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1001, - "src": "1638:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "1628:18:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1007, - "nodeType": "ExpressionStatement", - "src": "1628:18:2" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.", - "id": 1009, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1001, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1009, - "src": "1582:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1000, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1582:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1572:38:2" - }, - "returnParameters": { - "id": 1003, - "nodeType": "ParameterList", - "parameters": [], - "src": "1618:0:2" - }, - "scope": 1287, - "src": "1561:92:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1012, - "nodeType": "Block", - "src": "1766:7:2", - "statements": [] - }, - "documentation": "@notice Allow direct payments to be made to the DarknodePaymentStore.", - "id": 1013, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1010, - "nodeType": "ParameterList", - "parameters": [], - "src": "1746:2:2" - }, - "returnParameters": { - "id": 1011, - "nodeType": "ParameterList", - "parameters": [], - "src": "1766:0:2" - }, - "scope": 1287, - "src": "1737:36:2", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1026, - "nodeType": "Block", - "src": "2020:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1020, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "2037:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1022, - "indexExpression": { - "argumentTypes": null, - "id": 1021, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1015, - "src": "2055:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2037:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1023, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2069:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2037:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1019, - "id": 1025, - "nodeType": "Return", - "src": "2030:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is blacklisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is blacklisted", - "id": 1027, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isBlacklisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1016, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1015, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "1974:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1014, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1974:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1973:19:2" - }, - "returnParameters": { - "id": 1019, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1018, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1027, - "src": "2014:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1017, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2014:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2013:6:2" - }, - "scope": 1287, - "src": "1951:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1040, - "nodeType": "Block", - "src": "2324:57:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1034, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "2341:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1036, - "indexExpression": { - "argumentTypes": null, - "id": 1035, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1029, - "src": "2359:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2341:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2373:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2341:33:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 1033, - "id": 1039, - "nodeType": "Return", - "src": "2334:40:2" - } - ] - }, - "documentation": "@notice Checks to see if a darknode is whitelisted\n\n /// @param _darknode The address of the darknode\n @return true if the darknode is whitelisted", - "id": 1041, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isWhitelisted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1030, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1029, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2278:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1028, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2278:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2277:19:2" - }, - "returnParameters": { - "id": 1033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1032, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1041, - "src": "2318:4:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1031, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2318:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2317:6:2" - }, - "scope": 1287, - "src": "2255:126:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1068, - "nodeType": "Block", - "src": "2642:169:2", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1048, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2656:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1049, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "2666:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2656:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1066, - "nodeType": "Block", - "src": "2735:70:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1062, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "2788:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1061, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2780:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2780:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1058, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1043, - "src": "2762:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1057, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8042, - "src": "2756:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8042_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - }, - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 7686, - "src": "2756:23:2", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2756:38:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1065, - "nodeType": "Return", - "src": "2749:45:2" - } - ] - }, - "id": 1067, - "nodeType": "IfStatement", - "src": "2652:153:2", - "trueBody": { - "id": 1056, - "nodeType": "Block", - "src": "2676:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1052, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "2705:4:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodePaymentStore_$1287", - "typeString": "contract DarknodePaymentStore" - } - ], - "id": 1051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2697:7:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2697:13:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2697:21:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1047, - "id": 1055, - "nodeType": "Return", - "src": "2690:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Get the total balance of the contract for a particular token\n\n /// @param _token The token to check balance of\n @return The total balance of the contract", - "id": 1069, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1043, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2596:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1042, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2596:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2595:16:2" - }, - "returnParameters": { - "id": 1047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1046, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1069, - "src": "2633:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1045, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2633:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2632:9:2" - }, - "scope": 1287, - "src": "2574:237:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1085, - "nodeType": "Block", - "src": "3187:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1080, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "3229:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1082, - "indexExpression": { - "argumentTypes": null, - "id": 1081, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3244:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3229:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "3217:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1076, - "name": "totalBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1069, - "src": "3204:12:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:20:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "3204:24:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3204:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1075, - "id": 1084, - "nodeType": "Return", - "src": "3197:55:2" - } - ] - }, - "documentation": "@notice Get the available balance of the contract for a particular token\n This is the free amount which has not yet been allocated to\n darknodes.\n\n /// @param _token The token to check balance of\n @return The available balance of the contract", - "id": 1086, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1072, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1071, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3141:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1070, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3141:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3140:16:2" - }, - "returnParameters": { - "id": 1075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1074, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1086, - "src": "3178:7:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1073, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3178:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3177:9:2" - }, - "scope": 1287, - "src": "3115:144:2", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1126, - "nodeType": "Block", - "src": "3622:407:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1097, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3640:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1095, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3655:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1094, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "3641:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3641:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c726561647920626c61636b6c6973746564", - "id": 1098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3667:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - }, - "value": "darknode already blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf796bbc77637ef3a3960205a0b11e33d0031551130b1d151519b7ff1fc2596", - "typeString": "literal_string \"darknode already blacklisted\"" - } - ], - "id": 1093, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3632:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1099, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3632:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1100, - "nodeType": "ExpressionStatement", - "src": "3632:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1106, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1101, - "name": "darknodeBlacklist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 995, - "src": "3708:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1103, - "indexExpression": { - "argumentTypes": null, - "id": 1102, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3726:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3708:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1104, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "3739:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3739:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3708:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1107, - "nodeType": "ExpressionStatement", - "src": "3708:46:2" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1109, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3819:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1108, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "3805:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3805:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1125, - "nodeType": "IfStatement", - "src": "3801:222:2", - "trueBody": { - "id": 1124, - "nodeType": "Block", - "src": "3831:192:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1111, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "3845:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1113, - "indexExpression": { - "argumentTypes": null, - "id": 1112, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1088, - "src": "3863:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3845:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3876:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3845:32:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1116, - "nodeType": "ExpressionStatement", - "src": "3845:32:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1117, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3956:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4010:1:2", - "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": 1118, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "3982:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "3982:27:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3982:30:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3956:56:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1123, - "nodeType": "ExpressionStatement", - "src": "3956:56:2" - } - ] - } - } - ] - }, - "documentation": "@notice Blacklists a darknode from participating in reward allocation.\n If the darknode is whitelisted, it is removed from the whitelist\n and the number of whitelisted nodes is decreased.\n\n /// @param _darknode The address of the darknode to blacklist", - "id": 1127, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1091, - "modifierName": { - "argumentTypes": null, - "id": 1090, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3612:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3612:9:2" - } - ], - "name": "blacklist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1088, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1127, - "src": "3584:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1087, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3584:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3583:19:2" - }, - "returnParameters": { - "id": 1092, - "nodeType": "ParameterList", - "parameters": [], - "src": "3622:0:2" - }, - "scope": 1287, - "src": "3565:464:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1160, - "nodeType": "Block", - "src": "4269:246:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4287:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1136, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4302:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1135, - "name": "isBlacklisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1027, - "src": "4288:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4288:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520697320626c61636b6c6973746564", - "id": 1139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4314:25:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - }, - "value": "darknode is blacklisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b2595c93a5cd4ee60a0fc73f74d889182038841a2c576dfb52bdc225242aef77", - "typeString": "literal_string \"darknode is blacklisted\"" - } - ], - "id": 1134, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4279:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1140, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4279:61:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1141, - "nodeType": "ExpressionStatement", - "src": "4279:61:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4358:25:2", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1144, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4373:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1143, - "name": "isWhitelisted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1041, - "src": "4359:13:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4359:24:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6461726b6e6f646520616c72656164792077686974656c6973746564", - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4385:30:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - }, - "value": "darknode already whitelisted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3c82f441bfcf447ccf69d63ea6dfd26e8f4c31df97864b4bd119549a6a1276eb", - "typeString": "literal_string \"darknode already whitelisted\"" - } - ], - "id": 1142, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4350:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4350:66:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1149, - "nodeType": "ExpressionStatement", - "src": "4350:66:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1150, - "name": "darknodeWhitelist", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 999, - "src": "4427:17:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1152, - "indexExpression": { - "argumentTypes": null, - "id": 1151, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1129, - "src": "4445:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4427:28:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "4458:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4458:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4427:46:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1156, - "nodeType": "ExpressionStatement", - "src": "4427:46:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4483:25:2", - "subExpression": { - "argumentTypes": null, - "id": 1157, - "name": "darknodeWhitelistLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 981, - "src": "4483:23:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1159, - "nodeType": "ExpressionStatement", - "src": "4483:25:2" - } - ] - }, - "documentation": "@notice Whitelists a darknode allowing it to participate in reward\n allocation.\n\n /// @param _darknode The address of the darknode to whitelist", - "id": 1161, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1132, - "modifierName": { - "argumentTypes": null, - "id": 1131, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4259:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4259:9:2" - } - ], - "name": "whitelist", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1130, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1129, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1161, - "src": "4231:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4231:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4230:19:2" - }, - "returnParameters": { - "id": 1133, - "nodeType": "ParameterList", - "parameters": [], - "src": "4269:0:2" - }, - "scope": 1287, - "src": "4212:303:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1214, - "nodeType": "Block", - "src": "4957:309:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1173, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "4975:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4985:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4975:11:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420616d6f756e74", - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4988:16:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - }, - "value": "invalid amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_428d2b45bb1c86227a8688f1c30f1c359824c9298dfce034ebf8ca193afdf5e7", - "typeString": "literal_string \"invalid amount\"" - } - ], - "id": 1172, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4967:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4967:38:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1178, - "nodeType": "ExpressionStatement", - "src": "4967:38:2" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1181, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5040:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1180, - "name": "availableBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1086, - "src": "5023:16:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 1182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5023:24:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1183, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5051:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5023:35:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420636f6e74726163742062616c616e6365", - "id": 1185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5060:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - }, - "value": "insufficient contract balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d935e7c0470379b3a15e8821deb9bf7c4aa66e96937ceb6b3e245f4dd48b9a8a", - "typeString": "literal_string \"insufficient contract balance\"" - } - ], - "id": 1179, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5015:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:77:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1187, - "nodeType": "ExpressionStatement", - "src": "5015:77:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1188, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5103:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1191, - "indexExpression": { - "argumentTypes": null, - "id": 1189, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5120:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5103:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1192, - "indexExpression": { - "argumentTypes": null, - "id": 1190, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5131:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5103:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1199, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5181:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1193, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5141:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1195, - "indexExpression": { - "argumentTypes": null, - "id": 1194, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1163, - "src": "5158:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1197, - "indexExpression": { - "argumentTypes": null, - "id": 1196, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5169:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5141:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "5141:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5141:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5103:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1202, - "nodeType": "ExpressionStatement", - "src": "5103:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1203, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5199:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1205, - "indexExpression": { - "argumentTypes": null, - "id": 1204, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5214:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5199:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1210, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1167, - "src": "5251:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1206, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5224:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1208, - "indexExpression": { - "argumentTypes": null, - "id": 1207, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "5239:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5224:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "5224:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1211, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5224:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1213, - "nodeType": "ExpressionStatement", - "src": "5199:60:2" - } - ] - }, - "documentation": "@notice Increments the amount of funds allocated to a particular\n darknode.\n\n /// @param _darknode The address of the darknode to increase balance of\n @param _token The token which the balance should be incremented\n @param _amount The amount that the balance should be incremented by", - "id": 1215, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1170, - "modifierName": { - "argumentTypes": null, - "id": 1169, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4947:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4947:9:2" - } - ], - "name": "incrementDarknodeBalance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1163, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4886:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4886:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1165, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4905:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4905:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1167, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1215, - "src": "4921:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1166, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4921:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4885:52:2" - }, - "returnParameters": { - "id": 1171, - "nodeType": "ParameterList", - "parameters": [], - "src": "4957:0:2" - }, - "scope": 1287, - "src": "4852:414:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1285, - "nodeType": "Block", - "src": "5672:436:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1229, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5690:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1231, - "indexExpression": { - "argumentTypes": null, - "id": 1230, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5707:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1233, - "indexExpression": { - "argumentTypes": null, - "id": 1232, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5718:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5690:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 1234, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5729:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5690:46:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e74206461726b6e6f64652062616c616e6365", - "id": 1236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5738:31:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - }, - "value": "insufficient darknode balance" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_de295ef840beb4facbe6f674ee7b43fcfa29fb2fdeef87efb3e03c3633e266fc", - "typeString": "literal_string \"insufficient darknode balance\"" - } - ], - "id": 1228, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "5682:7:2", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5682:88:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1238, - "nodeType": "ExpressionStatement", - "src": "5682:88:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1239, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5780:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1242, - "indexExpression": { - "argumentTypes": null, - "id": 1240, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5797:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5780:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1243, - "indexExpression": { - "argumentTypes": null, - "id": 1241, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5808:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5780:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1250, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5858:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1244, - "name": "darknodeBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "5818:16:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 1246, - "indexExpression": { - "argumentTypes": null, - "id": 1245, - "name": "_darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1217, - "src": "5835:9:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:27:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1248, - "indexExpression": { - "argumentTypes": null, - "id": 1247, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5846:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5818:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "5818:39:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5818:48:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5780:86:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1253, - "nodeType": "ExpressionStatement", - "src": "5780:86:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 1263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1254, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5876:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1256, - "indexExpression": { - "argumentTypes": null, - "id": 1255, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5891:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5876:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1261, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "5928:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1257, - "name": "lockedBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 991, - "src": "5901:14:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1259, - "indexExpression": { - "argumentTypes": null, - "id": 1258, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5916:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5901:22:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "5901:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5901:35:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5876:60:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1264, - "nodeType": "ExpressionStatement", - "src": "5876:60:2" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1267, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1265, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "5951:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 1266, - "name": "ETHEREUM", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 979, - "src": "5961:8:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5951:18:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1283, - "nodeType": "Block", - "src": "6030:72:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1279, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "6071:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1280, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6083:7:2", - "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, - "id": 1276, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1219, - "src": "6050:6:2", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1275, - "name": "ERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8042, - "src": "6044:5:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20_$8042_$", - "typeString": "type(contract ERC20)" - } - }, - "id": 1277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:13:2", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$8042", - "typeString": "contract ERC20" - } - }, - "id": 1278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "safeTransfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4553, - "src": "6044:26:2", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC20_$8302_$_t_address_$_t_uint256_$returns$__$bound_to$_t_contract$_IERC20_$8302_$", - "typeString": "function (contract IERC20,address,uint256)" - } - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6044:47:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1282, - "nodeType": "ExpressionStatement", - "src": "6044:47:2" - } - ] - }, - "id": 1284, - "nodeType": "IfStatement", - "src": "5947:155:2", - "trueBody": { - "id": 1274, - "nodeType": "Block", - "src": "5971:53:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1271, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1221, - "src": "6005:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1268, - "name": "_recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1223, - "src": "5985:10:2", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5985:19:2", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5985:28:2", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1273, - "nodeType": "ExpressionStatement", - "src": "5985:28:2" - } - ] - } - } - ] - }, - "documentation": "@notice Transfers an amount out of balance to a specified address\n\n /// @param _darknode The address of the darknode\n @param _token Which token to transfer\n @param _amount The amount to transfer\n @param _recipient The address to withdraw it to", - "id": 1286, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1226, - "modifierName": { - "argumentTypes": null, - "id": 1225, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5662:9:2", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5662:9:2" - } - ], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1224, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1217, - "name": "_darknode", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5573:17:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1216, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5573:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1219, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5592:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1218, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5592:7:2", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1221, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5608:15:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1220, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5608:7:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1223, - "name": "_recipient", - "nodeType": "VariableDeclaration", - "scope": 1286, - "src": "5625:26:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1222, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5625:15:2", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5572:80:2" - }, - "returnParameters": { - "id": 1227, - "nodeType": "ParameterList", - "parameters": [], - "src": "5672:0:2" - }, - "scope": 1287, - "src": "5555:553:2", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 1288, - "src": "559:5552:2" - } - ], - "src": "0:6112:2" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -8882,114 +382,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T03:42:13.810Z", - "devdoc": { - "methods": { - "availableBalance(address)": { - "params": { - "_token": "The token to check balance of" - }, - "return": "The available balance of the contract" - }, - "blacklist(address)": { - "params": { - "_darknode": "The address of the darknode to blacklist" - } - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version." - } - }, - "incrementDarknodeBalance(address,address,uint256)": { - "params": { - "_amount": "The amount that the balance should be incremented by", - "_darknode": "The address of the darknode to increase balance of", - "_token": "The token which the balance should be incremented" - } - }, - "isBlacklisted(address)": { - "params": { - "_darknode": "The address of the darknode" - }, - "return": "true if the darknode is blacklisted" - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "isWhitelisted(address)": { - "params": { - "_darknode": "The address of the darknode" - }, - "return": "true if the darknode is whitelisted" - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "totalBalance(address)": { - "params": { - "_token": "The token to check balance of" - }, - "return": "The total balance of the contract" - }, - "transfer(address,address,uint256,address)": { - "params": { - "_amount": "The amount to transfer", - "_darknode": "The address of the darknode", - "_recipient": "The address to withdraw it to", - "_token": "Which token to transfer" - } - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - }, - "whitelist(address)": { - "params": { - "_darknode": "The address of the darknode to whitelist" - } - } - } - }, - "userdoc": { - "methods": { - "availableBalance(address)": { - "notice": "Get the available balance of the contract for a particular token This is the free amount which has not yet been allocated to darknodes. " - }, - "blacklist(address)": { - "notice": "Blacklists a darknode from participating in reward allocation. If the darknode is whitelisted, it is removed from the whitelist and the number of whitelisted nodes is decreased. " - }, - "constructor": "The contract constructor. ", - "incrementDarknodeBalance(address,address,uint256)": { - "notice": "Increments the amount of funds allocated to a particular darknode. " - }, - "isBlacklisted(address)": { - "notice": "Checks to see if a darknode is blacklisted " - }, - "isWhitelisted(address)": { - "notice": "Checks to see if a darknode is whitelisted " - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "totalBalance(address)": { - "notice": "Get the total balance of the contract for a particular token " - }, - "transfer(address,address,uint256,address)": { - "notice": "Transfers an amount out of balance to a specified address " - }, - "whitelist(address)": { - "notice": "Whitelists a darknode allowing it to participate in reward allocation. " - } - }, - "notice": "DarknodePaymentStore is responsible for tracking black/whitelisted darknodes as well as the balances which have been allocated to the darknodes. It is also responsible for holding the tokens to be paid out to darknodes." - } + "updatedAt": "2019-06-26T03:42:13.810Z" } \ No newline at end of file diff --git a/build/testnet/DarknodeRegistry.json b/build/testnet/DarknodeRegistry.json index ca1f3f43..463c9236 100644 --- a/build/testnet/DarknodeRegistry.json +++ b/build/testnet/DarknodeRegistry.json @@ -870,28765 +870,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isPendingRegistration\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodesNextEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumBond\",\"type\":\"uint256\"}],\"name\":\"updateMinimumBond\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodeOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextSlasher\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_publicKey\",\"type\":\"bytes\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isPendingDeregistration\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getPreviousDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumEpochInterval\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumEpochInterval\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_prover\",\"type\":\"address\"},{\"name\":\"_challenger1\",\"type\":\"address\"},{\"name\":\"_challenger2\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRefundable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"previousEpoch\",\"outputs\":[{\"name\":\"epochhash\",\"type\":\"uint256\"},{\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumEpochInterval\",\"type\":\"uint256\"}],\"name\":\"updateMinimumEpochInterval\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextMinimumPodSize\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numDarknodesPreviousEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"currentEpoch\",\"outputs\":[{\"name\":\"epochhash\",\"type\":\"uint256\"},{\"name\":\"blocknumber\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRegisteredInPreviousEpoch\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isDeregistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextMinimumPodSize\",\"type\":\"uint256\"}],\"name\":\"updateMinimumPodSize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"deregister\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodePublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ren\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"epoch\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"store\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"slasher\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_slasher\",\"type\":\"address\"}],\"name\":\"updateSlasher\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"getDarknodeBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferStoreOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRegistered\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minimumPodSize\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isDeregisterable\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getDarknodes\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"refund\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"isRefunded\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_renAddress\",\"type\":\"address\"},{\"name\":\"_storeAddress\",\"type\":\"address\"},{\"name\":\"_minimumBond\",\"type\":\"uint256\"},{\"name\":\"_minimumPodSize\",\"type\":\"uint256\"},{\"name\":\"_minimumEpochInterval\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknodeID\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_bond\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_darknodeID\",\"type\":\"address\"}],\"name\":\"LogDarknodeDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"LogDarknodeOwnerRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"epochhash\",\"type\":\"uint256\"}],\"name\":\"LogNewEpoch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumBond\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumBond\",\"type\":\"uint256\"}],\"name\":\"LogMinimumBondUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumPodSize\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumPodSize\",\"type\":\"uint256\"}],\"name\":\"LogMinimumPodSizeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousMinimumEpochInterval\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"nextMinimumEpochInterval\",\"type\":\"uint256\"}],\"name\":\"LogMinimumEpochIntervalUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"previousSlasher\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"nextSlasher\",\"type\":\"address\"}],\"name\":\"LogSlasherUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_minimumBond\":\"The minimum bond amount that can be submitted by a Darknode.\",\"_minimumEpochInterval\":\"The minimum number of blocks between epochs.\",\"_minimumPodSize\":\"The minimum size of a Darknode pod.\",\"_renAddress\":\"The address of the RenToken contract.\",\"_storeAddress\":\"The address of the DarknodeRegistryStore contract.\"}},\"deregister(address)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be deregistered. The caller of this method store.darknodeRegisteredAt(_darknodeID) must be\"}},\"getDarknodeBond(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the bond for.\"}},\"getDarknodeOwner(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the owner for.\"}},\"getDarknodePublicKey(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to retrieve the public key for.\"}},\"getDarknodes(address,uint256)\":{\"params\":{\"_count\":\"The number of darknodes to retrieve starting from _start. If _count is 0, all of the darknodes from _start are retrieved. If _count is more than the remaining number of registered darknodes, the rest of the list will contain 0x0s.\",\"_start\":\"A darknode ID used as an offset for the list. If _start is 0x0, the first dark node will be used. _start won't be included it is not registered for the epoch.\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"isPendingRegistration(address)\":{\"params\":{\"_darknodeID\":\"The ID of the darknode to return\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"refund(address)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be refunded. The caller of this method must be the owner of this darknode.\"}},\"register(address,bytes)\":{\"params\":{\"_darknodeID\":\"The darknode ID that will be registered.\",\"_publicKey\":\"The public key of the darknode. It is stored to allow other darknodes and traders to encrypt messages to the trader.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"slash(address,address,address)\":{\"params\":{\"_challenger1\":\"The first of the two darknodes who submitted the challenge\",\"_challenger2\":\"The second of the two darknodes who submitted the challenge\",\"_prover\":\"The guilty prover whose bond is being slashed\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferStoreOwnership(address)\":{\"params\":{\"_newOwner\":\"The address to transfer the ownership to.\"}},\"updateMinimumBond(uint256)\":{\"params\":{\"_nextMinimumBond\":\"The minimum bond amount that can be submitted by a darknode.\"}},\"updateMinimumEpochInterval(uint256)\":{\"params\":{\"_nextMinimumEpochInterval\":\"The minimum number of blocks between epochs.\"}},\"updateMinimumPodSize(uint256)\":{\"params\":{\"_nextMinimumPodSize\":\"The minimum size of a pod.\"}},\"updateSlasher(address)\":{\"params\":{\"_slasher\":\"The new slasher address.\"}}}},\"userdoc\":{\"methods\":{\"claimStoreOwnership()\":{\"notice\":\"Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another Darknode Registry.\"},\"constructor\":\"The contract constructor. \",\"deregister(address)\":{\"notice\":\"Deregister a darknode. The darknode will not be deregistered until the end of the epoch. After another epoch, the bond can be refunded by calling the refund method.\"},\"epoch()\":{\"notice\":\"Progress the epoch if it is possible to do so. This captures the current timestamp and current blockhash and overrides the current epoch.\"},\"getDarknodeBond(address)\":{\"notice\":\"Retrieves the bond amount of a darknode in 10^-18 REN.\"},\"getDarknodeOwner(address)\":{\"notice\":\"Retrieves the address of the account that registered a darknode.\"},\"getDarknodePublicKey(address)\":{\"notice\":\"Retrieves the encryption public key of the darknode.\"},\"getDarknodes(address,uint256)\":{\"notice\":\"Retrieves a list of darknodes which are registered for the current epoch.\"},\"getPreviousDarknodes(address,uint256)\":{\"notice\":\"Retrieves a list of darknodes which were registered for the previous epoch. See `getDarknodes` for the parameter documentation.\"},\"isDeregisterable(address)\":{\"notice\":\"Returns if a darknode can be deregistered. This is true if the darknodes is in the registered state and has not attempted to deregister yet.\"},\"isDeregistered(address)\":{\"notice\":\"Returns if a darknode is in the deregistered state.\"},\"isPendingDeregistration(address)\":{\"notice\":\"Returns if a darknode is in the pending deregistered state. In this state a darknode is still considered registered.\"},\"isPendingRegistration(address)\":{\"notice\":\"Returns whether a darknode is scheduled to become registered at next epoch.\"},\"isRefundable(address)\":{\"notice\":\"Returns if a darknode is refundable. This is true for darknodes that have been in the deregistered state for one full epoch.\"},\"isRefunded(address)\":{\"notice\":\"Returns if a darknode is in the refunded state. This is true for darknodes that have never been registered, or darknodes that have been deregistered and refunded.\"},\"isRegistered(address)\":{\"notice\":\"Returns if a darknode is in the registered state.\"},\"isRegisteredInPreviousEpoch(address)\":{\"notice\":\"Returns if a darknode was in the registered state last epoch.\"},\"refund(address)\":{\"notice\":\"Refund the bond of a deregistered darknode. This will make the darknode available for registration again. Anyone can call this function but the bond will always be refunded to the darknode owner. \"},\"register(address,bytes)\":{\"notice\":\"Register a darknode and transfer the bond to this contract. Before registering, the bond transfer must be approved in the REN contract. The caller must provide a public encryption key for the darknode. The darknode will remain pending registration until the next epoch. Only after this period can the darknode be deregistered. The caller of this method will be stored as the owner of the darknode. \"},\"slash(address,address,address)\":{\"notice\":\"Allow the DarknodeSlasher contract to slash half of a darknode's bond and deregister it. The bond is distributed as follows: 1/2 is kept by the guilty prover 1/8 is rewarded to the first challenger 1/8 is rewarded to the second challenger 1/4 becomes unassigned\"},\"transferStoreOwnership(address)\":{\"notice\":\"Allows the contract owner to initiate an ownership transfer of the DarknodeRegistryStore. \"},\"updateMinimumBond(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum bond.\"},\"updateMinimumEpochInterval(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum epoch interval.\"},\"updateMinimumPodSize(uint256)\":{\"notice\":\"Allows the contract owner to update the minimum pod size.\"},\"updateSlasher(address)\":{\"notice\":\"Allow the contract owner to update the DarknodeSlasher contract address.\"}},\"notice\":\"DarknodeRegistry is responsible for the registration and deregistration of Darknodes.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":\"DarknodeRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b506040516200296c3803806200296c833981018060405260c08110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b505060208201516040808401516060850151608086015160a090960151600080546001600160a01b0319163317808255945196995094975091959094909391926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a385516200010490600190602089019062000188565b50601080546001600160a01b039586166001600160a01b031991821617909155600f805496909516951694909417909255600581905560085560068190556009556007819055600a555060408051808201909152436000198101408083526020909201819052600b91909155600c556000600281905560038190556004556200022d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001cb57805160ff1916838001178555620001fb565b82800160010185558215620001fb579182015b82811115620001fb578251825591602001919060010190620001de565b50620002099291506200020d565b5090565b6200022a91905b8082111562000209576000815560010162000214565b90565b61272f806200023d6000396000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c80638020fc1f11610151578063b3139d38116100c3578063e187892511610087578063e18789251461073e578063ec5325c114610764578063f2fde38b14610790578063fa89401a146107b6578063ffa1ad74146107dc578063ffc9152e146107e457610274565b8063b3139d381461069e578063ba0f5b20146106c4578063c2250a99146106ea578063c3c5a54714610710578063c7dbc2be1461073657610274565b80638da5cb5b116101155780638da5cb5b1461066e5780638f32d59b14610676578063900cf0cf1461067e578063975057e714610686578063aa7517e11461068e578063b13442711461069657610274565b80638020fc1f1461056257806380a0c4611461058857806384ac33ec146105a557806384d2688c146105cb5780638a9b40671461066657610274565b8063563bf264116101ea5780636fd689e8116101ae5780636fd689e814610514578063702c25ee1461051c578063715018a61461052457806371740d161461052c57806376671808146105345780637be266da1461053c57610274565b8063563bf264146104705780635aebd1cb146104a85780635cdaab48146104ce57806360a22fe4146104ef57806363b851b9146104f757610274565b806321a2ad3a1161023c57806321a2ad3a1461033657806324b8fbf61461033e578063303ee989146103be57806343846074146103e4578063455dc46d1461046057806355cacda51461046857610274565b8063040fa051146102795780630847e9fa146102b35780630ff9aafe146102cd5780631460e603146102ec5780631cedf8a3146102f4575b600080fd5b61029f6004803603602081101561028f57600080fd5b50356001600160a01b031661080a565b604080519115158252519081900360200190f35b6102bb6108a1565b60408051918252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b50356108a7565b005b6102bb6108f6565b61031a6004803603602081101561030a57600080fd5b50356001600160a01b03166108fc565b604080516001600160a01b039092168252519081900360200190f35b61031a610982565b6102ea6004803603604081101561035457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b509092509050610991565b61029f600480360360208110156103d457600080fd5b50356001600160a01b0316610c12565b610410600480360360408110156103fa57600080fd5b506001600160a01b038135169060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044c578181015183820152602001610434565b505050509050019250505060405180910390f35b6102bb610c84565b6102bb610c8a565b6102ea6004803603606081101561048657600080fd5b506001600160a01b038135811691602081013582169160409091013516610c90565b61029f600480360360208110156104be57600080fd5b50356001600160a01b03166110b6565b6104d661114f565b6040805192835260208301919091528051918290030190f35b6102bb611158565b6102ea6004803603602081101561050d57600080fd5b503561115e565b6102ea6111ad565b6102bb611261565b6102ea611267565b6102bb6112fb565b6104d6611301565b61029f6004803603602081101561055257600080fd5b50356001600160a01b031661130a565b61029f6004803603602081101561057857600080fd5b50356001600160a01b031661132f565b6102ea6004803603602081101561059e57600080fd5b50356113c3565b6102ea600480360360208110156105bb57600080fd5b50356001600160a01b0316611412565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316611559565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561062b578181015183820152602001610613565b50505050905090810190601f1680156106585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a61163b565b61031a61164a565b61029f611659565b6102ea61166a565b61031a61191d565b6102bb61192c565b61031a611932565b6102ea600480360360208110156106b457600080fd5b50356001600160a01b0316611941565b6102bb600480360360208110156106da57600080fd5b50356001600160a01b0316611a0b565b6102ea6004803603602081101561070057600080fd5b50356001600160a01b0316611a5f565b61029f6004803603602081101561072657600080fd5b50356001600160a01b0316611b0e565b6102bb611b33565b61029f6004803603602081101561075457600080fd5b50356001600160a01b0316611b39565b6104106004803603604081101561077a57600080fd5b506001600160a01b038135169060200135611bcf565b6102ea600480360360208110156107a657600080fd5b50356001600160a01b0316611be8565b6102ea600480360360208110156107cc57600080fd5b50356001600160a01b0316611c3e565b6105f1611f11565b61029f600480360360208110156107fa57600080fd5b50356001600160a01b0316611f9e565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d602081101561088657600080fd5b50519050801580159061089a5750600c5481115b9392505050565b60035481565b6108af611659565b6108f15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600855565b60025481565b60105460408051600160e01b63a30788150281526001600160a01b0384811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b15801561095057600080fd5b505afa158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b505192915050565b6012546001600160a01b031681565b8261099b81611f9e565b6109d957604051600160e51b62461bcd02815260040180806020018281038252602481526020018061266f6024913960400191505060405180910390fd5b600554600f5460105460408051600160e01b6323b872dd0281523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3e57600080fd5b505af1158015610a52573d6000803e3d6000fd5b505050506040513d6020811015610a6857600080fd5b5051610abe5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b601054600754600c546001600160a01b039092169163a85ef579918891339186918a918a91610af29163ffffffff6120b016565b60006040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001868152602001806020018481526020018381526020018281038252868682818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b5050600354610bc992509050600163ffffffff6120b016565b6003556040805182815290516001600160a01b038716917fd2819ba4c736158371edf0be38fd8d1fc435609832e392f118c4c79160e5bd7b919081900360200190a25050505050565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561085c57600080fd5b60608180610c7057506004545b610c7c8482600161210d565b949350505050565b600a5481565b60075481565b6011546001600160a01b03163314610cf25760408051600160e51b62461bcd02815260206004820152600f60248201527f6d75737420626520736c61736865720000000000000000000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63cad413570281526001600160a01b0386811660048301529151600093600293169163cad41357916024808301926020929190829003018186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d6020811015610d6f57600080fd5b505181610d7857fe5b049050600060048260105460408051600160e21b633ef100bf0281526001600160a01b038a81166004830152602482018890529151949093049450169163fbc402fc9160448082019260009290919082900301818387803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050610dfd85611b39565b15610e0b57610e0b85612348565b600f5460105460408051600160e01b63a30788150281526001600160a01b03888116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b505050506040513d6020811015610f0757600080fd5b5051610f5d5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b600f5460105460408051600160e01b63a30788150281526001600160a01b03878116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b505050506040513d602081101561105957600080fd5b50516110af5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b5050505050565b60006110c18261132f565b80156111495750600e5460105460408051600160e11b62c985b70281526001600160a01b038681166004830152915191909216916301930b6e916024808301926020929190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b505111155b92915050565b600d54600e5482565b60085481565b611166611659565b6111a85760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600a55565b6111b5611659565b6111f75760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b601060009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50505050565b60095481565b61126f611659565b6112b15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b600b54600c5482565b60408051808201909152600d548152600e54602082015260009061114990839061242a565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b50519050801580159061089a5750600c54101592915050565b6113cb611659565b61140d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600955565b8061141c81611b39565b6114705760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206465726567697374657261626c6500000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63a30788150281526001600160a01b038086166004830152915185933393169163a3078815916024808301926020929190829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50516001600160a01b03161461154b5760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b61155483612348565b505050565b60105460408051600160e41b630ee594a50281526001600160a01b0384811660048301529151606093929092169163ee594a5091602480820192600092909190829003018186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115ea57600080fd5b81019080805164010000000081111561160257600080fd5b8201602081018481111561161557600080fd5b815164010000000081118282018710171561162f57600080fd5b50909695505050505050565b600f546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600e546116e15761167961164a565b6001600160a01b0316336001600160a01b0316146116e15760408051600160e51b62461bcd02815260206004820152601d60248201527f6e6f7420617574686f72697a6564202866697273742065706f63687329000000604482015290519081900360640190fd5b600754600c546116f69163ffffffff6120b016565b43101561174d5760408051600160e51b62461bcd02815260206004820152601d60248201527f65706f636820696e74657276616c20686173206e6f7420706173736564000000604482015290519081900360640190fd5b600b8054600d55600c8054600e556040805180820190915243600019810140808352602090920181905292819055919055600280546004556003549055600554600854146117d957600854600581905560408051828152602081019290925280517f7c77c94944e9e4e5b0d46f1297127d060020792687cd743401d782346c68f6559281900390910190a15b6006546009541461182857600954600681905560408051828152602081019290925280517f6d520e46e5714982ddf8cb6216bcb3e1c1d5b79d337afc305335f819394f5d6a9281900390910190a15b600754600a541461187757600a54600781905560408051828152602081019290925280517fb218cde2730b79a0667ddf869466ee66a12ef56fe65fa4986a590f8a7108c9de9281900390910190a15b6011546012546001600160a01b039081169116146118ef57601254601180546001600160a01b0319166001600160a01b039283169081179182905560408051929093168252602082015281517f933228a1c3ba8fadd3ce47a9db5b898be647f89af99ba7c1b9a655f59ea306c8929181900390910190a15b60405181907faf2fc4796f2932ce294c3684deffe5098d3ef65dc2dd64efa80ef94eed88b01e90600090a250565b6010546001600160a01b031681565b60055481565b6011546001600160a01b031681565b611949611659565b61198b5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b6001600160a01b0381166119e95760408051600160e51b62461bcd02815260206004820152601760248201527f696e76616c696420736c61736865722061646472657373000000000000000000604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60105460408051600160e01b63cad413570281526001600160a01b0384811660048301529151600093929092169163cad4135791602480820192602092909190829003018186803b15801561095057600080fd5b611a67611659565b611aa95760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b60105460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015611afa57600080fd5b505af11580156110af573d6000803e3d6000fd5b60408051808201909152600b548152600c54602082015260009061114990839061242a565b60065481565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d6020811015611bb457600080fd5b50519050611bc183611b0e565b801561089a57501592915050565b60608180611bdc57506002545b610c7c8482600061210d565b611bf0611659565b611c325760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b611c3b8161256b565b50565b80611c48816110b6565b611c8657604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806126b9602b913960400191505060405180910390fd5b60105460408051600160e01b63a30788150281526001600160a01b0385811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b158015611cda57600080fd5b505afa158015611cee573d6000803e3d6000fd5b505050506040513d6020811015611d0457600080fd5b505160105460408051600160e01b63cad413570281526001600160a01b0387811660048301529151939450600093919092169163cad41357916024808301926020929190829003018186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b505160105460408051600160e11b6320da21c90281526001600160a01b03888116600483015291519394509116916341b443929160248082019260009290919082900301818387803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b5050600f5460408051600160e01b63a9059cbb0281526001600160a01b03878116600483015260248201879052915191909216935063a9059cbb925060448083019260209291908290030181600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b5051611ecc5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b6040805182815290516001600160a01b038416917f96ab9e56c79eee4a72db6e2879cbfbecdba5c65b411f4861824e66b89df19764919081900360200190a250505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611f965780601f10611f6b57610100808354040283529160200191611f96565b820191906000526020600020905b815481529060010190602001808311611f7957829003601f168201915b505050505081565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d602081101561201a57600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038781166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b15801561207157600080fd5b505afa158015612085573d6000803e3d6000fd5b505050506040513d602081101561209b57600080fd5b5051905081158015610c7c5750159392505050565b60008282018381101561089a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060828061211a57506002545b606081604051908082528060200260200182016040528015612146578160200160208202803883390190505b5090506000866001600160a01b0381166121d757601060009054906101000a90046001600160a01b03166001600160a01b0316631bce6ff36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b505190505b8382101561162f576001600160a01b0381166121f25761162f565b6000861561220a576122038261130a565b9050612216565b61221382611b0e565b90505b806122a05760105460408051600160e11b6355b9f18b0281526001600160a01b0385811660048301529151919092169163ab73e316916024808301926020929190829003018186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d602081101561229557600080fd5b505191506121d79050565b818484815181106122ad57fe5b6001600160a01b0392831660209182029290920181019190915260105460408051600160e11b6355b9f18b02815286851660048201529051919093169263ab73e316926024808301939192829003018186803b15801561230c57600080fd5b505afa158015612320573d6000803e3d6000fd5b505050506040513d602081101561233657600080fd5b50516001939093019291506121d79050565b601054600754600c546001600160a01b0390921691633ac39d4b9184916123749163ffffffff6120b016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50506003546123f092509050600163ffffffff61260e16565b6003556040516001600160a01b038216907f2dc89de5703d2c341a22ebfc7c4d3f197e5e1f0c19bc2e1135f387163cb927e490600090a250565b60105460408051600160e21b6338b5f1930281526001600160a01b03858116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d60208110156124a657600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038881166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d602081101561252757600080fd5b5051905060008215801590612540575084602001518311155b905060008215806125545750856020015183115b90508180156125605750805b979650505050505050565b6001600160a01b0381166125b357604051600160e51b62461bcd0281526004018080602001828103825260268152602001806126936026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156126685760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe6d75737420626520726566756e646564206f72206e6576657220726567697374657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f63684f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058208517b004b2026d01b1448d146ce097bb267c9649ace695b74d180d77473999a80029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102745760003560e01c80638020fc1f11610151578063b3139d38116100c3578063e187892511610087578063e18789251461073e578063ec5325c114610764578063f2fde38b14610790578063fa89401a146107b6578063ffa1ad74146107dc578063ffc9152e146107e457610274565b8063b3139d381461069e578063ba0f5b20146106c4578063c2250a99146106ea578063c3c5a54714610710578063c7dbc2be1461073657610274565b80638da5cb5b116101155780638da5cb5b1461066e5780638f32d59b14610676578063900cf0cf1461067e578063975057e714610686578063aa7517e11461068e578063b13442711461069657610274565b80638020fc1f1461056257806380a0c4611461058857806384ac33ec146105a557806384d2688c146105cb5780638a9b40671461066657610274565b8063563bf264116101ea5780636fd689e8116101ae5780636fd689e814610514578063702c25ee1461051c578063715018a61461052457806371740d161461052c57806376671808146105345780637be266da1461053c57610274565b8063563bf264146104705780635aebd1cb146104a85780635cdaab48146104ce57806360a22fe4146104ef57806363b851b9146104f757610274565b806321a2ad3a1161023c57806321a2ad3a1461033657806324b8fbf61461033e578063303ee989146103be57806343846074146103e4578063455dc46d1461046057806355cacda51461046857610274565b8063040fa051146102795780630847e9fa146102b35780630ff9aafe146102cd5780631460e603146102ec5780631cedf8a3146102f4575b600080fd5b61029f6004803603602081101561028f57600080fd5b50356001600160a01b031661080a565b604080519115158252519081900360200190f35b6102bb6108a1565b60408051918252519081900360200190f35b6102ea600480360360208110156102e357600080fd5b50356108a7565b005b6102bb6108f6565b61031a6004803603602081101561030a57600080fd5b50356001600160a01b03166108fc565b604080516001600160a01b039092168252519081900360200190f35b61031a610982565b6102ea6004803603604081101561035457600080fd5b6001600160a01b03823516919081019060408101602082013564010000000081111561037f57600080fd5b82018360208201111561039157600080fd5b803590602001918460018302840111640100000000831117156103b357600080fd5b509092509050610991565b61029f600480360360208110156103d457600080fd5b50356001600160a01b0316610c12565b610410600480360360408110156103fa57600080fd5b506001600160a01b038135169060200135610c63565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561044c578181015183820152602001610434565b505050509050019250505060405180910390f35b6102bb610c84565b6102bb610c8a565b6102ea6004803603606081101561048657600080fd5b506001600160a01b038135811691602081013582169160409091013516610c90565b61029f600480360360208110156104be57600080fd5b50356001600160a01b03166110b6565b6104d661114f565b6040805192835260208301919091528051918290030190f35b6102bb611158565b6102ea6004803603602081101561050d57600080fd5b503561115e565b6102ea6111ad565b6102bb611261565b6102ea611267565b6102bb6112fb565b6104d6611301565b61029f6004803603602081101561055257600080fd5b50356001600160a01b031661130a565b61029f6004803603602081101561057857600080fd5b50356001600160a01b031661132f565b6102ea6004803603602081101561059e57600080fd5b50356113c3565b6102ea600480360360208110156105bb57600080fd5b50356001600160a01b0316611412565b6105f1600480360360208110156105e157600080fd5b50356001600160a01b0316611559565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561062b578181015183820152602001610613565b50505050905090810190601f1680156106585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61031a61163b565b61031a61164a565b61029f611659565b6102ea61166a565b61031a61191d565b6102bb61192c565b61031a611932565b6102ea600480360360208110156106b457600080fd5b50356001600160a01b0316611941565b6102bb600480360360208110156106da57600080fd5b50356001600160a01b0316611a0b565b6102ea6004803603602081101561070057600080fd5b50356001600160a01b0316611a5f565b61029f6004803603602081101561072657600080fd5b50356001600160a01b0316611b0e565b6102bb611b33565b61029f6004803603602081101561075457600080fd5b50356001600160a01b0316611b39565b6104106004803603604081101561077a57600080fd5b506001600160a01b038135169060200135611bcf565b6102ea600480360360208110156107a657600080fd5b50356001600160a01b0316611be8565b6102ea600480360360208110156107cc57600080fd5b50356001600160a01b0316611c3e565b6105f1611f11565b61029f600480360360208110156107fa57600080fd5b50356001600160a01b0316611f9e565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561085c57600080fd5b505afa158015610870573d6000803e3d6000fd5b505050506040513d602081101561088657600080fd5b50519050801580159061089a5750600c5481115b9392505050565b60035481565b6108af611659565b6108f15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600855565b60025481565b60105460408051600160e01b63a30788150281526001600160a01b0384811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b15801561095057600080fd5b505afa158015610964573d6000803e3d6000fd5b505050506040513d602081101561097a57600080fd5b505192915050565b6012546001600160a01b031681565b8261099b81611f9e565b6109d957604051600160e51b62461bcd02815260040180806020018281038252602481526020018061266f6024913960400191505060405180910390fd5b600554600f5460105460408051600160e01b6323b872dd0281523360048201526001600160a01b03928316602482015260448101859052905191909216916323b872dd9160648083019260209291908290030181600087803b158015610a3e57600080fd5b505af1158015610a52573d6000803e3d6000fd5b505050506040513d6020811015610a6857600080fd5b5051610abe5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b601054600754600c546001600160a01b039092169163a85ef579918891339186918a918a91610af29163ffffffff6120b016565b60006040518863ffffffff1660e01b815260040180886001600160a01b03166001600160a01b03168152602001876001600160a01b03166001600160a01b03168152602001868152602001806020018481526020018381526020018281038252868682818152602001925080828437600081840152601f19601f82011690508083019250505098505050505050505050600060405180830381600087803b158015610b9c57600080fd5b505af1158015610bb0573d6000803e3d6000fd5b5050600354610bc992509050600163ffffffff6120b016565b6003556040805182815290516001600160a01b038716917fd2819ba4c736158371edf0be38fd8d1fc435609832e392f118c4c79160e5bd7b919081900360200190a25050505050565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561085c57600080fd5b60608180610c7057506004545b610c7c8482600161210d565b949350505050565b600a5481565b60075481565b6011546001600160a01b03163314610cf25760408051600160e51b62461bcd02815260206004820152600f60248201527f6d75737420626520736c61736865720000000000000000000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63cad413570281526001600160a01b0386811660048301529151600093600293169163cad41357916024808301926020929190829003018186803b158015610d4557600080fd5b505afa158015610d59573d6000803e3d6000fd5b505050506040513d6020811015610d6f57600080fd5b505181610d7857fe5b049050600060048260105460408051600160e21b633ef100bf0281526001600160a01b038a81166004830152602482018890529151949093049450169163fbc402fc9160448082019260009290919082900301818387803b158015610ddc57600080fd5b505af1158015610df0573d6000803e3d6000fd5b50505050610dfd85611b39565b15610e0b57610e0b85612348565b600f5460105460408051600160e01b63a30788150281526001600160a01b03888116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610e6857600080fd5b505afa158015610e7c573d6000803e3d6000fd5b505050506040513d6020811015610e9257600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b158015610edd57600080fd5b505af1158015610ef1573d6000803e3d6000fd5b505050506040513d6020811015610f0757600080fd5b5051610f5d5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b600f5460105460408051600160e01b63a30788150281526001600160a01b03878116600483015291519382169363a9059cbb939092169163a307881591602480820192602092909190829003018186803b158015610fba57600080fd5b505afa158015610fce573d6000803e3d6000fd5b505050506040513d6020811015610fe457600080fd5b50516040805163ffffffff841660e01b81526001600160a01b039092166004830152602482018590525160448083019260209291908290030181600087803b15801561102f57600080fd5b505af1158015611043573d6000803e3d6000fd5b505050506040513d602081101561105957600080fd5b50516110af5760408051600160e51b62461bcd02815260206004820152601660248201527f726577617264207472616e73666572206661696c656400000000000000000000604482015290519081900360640190fd5b5050505050565b60006110c18261132f565b80156111495750600e5460105460408051600160e11b62c985b70281526001600160a01b038681166004830152915191909216916301930b6e916024808301926020929190829003018186803b15801561111a57600080fd5b505afa15801561112e573d6000803e3d6000fd5b505050506040513d602081101561114457600080fd5b505111155b92915050565b600d54600e5482565b60085481565b611166611659565b6111a85760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600a55565b6111b5611659565b6111f75760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b601060009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561124757600080fd5b505af115801561125b573d6000803e3d6000fd5b50505050565b60095481565b61126f611659565b6112b15760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60045481565b600b54600c5482565b60408051808201909152600d548152600e54602082015260009061114990839061242a565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b15801561138057600080fd5b505afa158015611394573d6000803e3d6000fd5b505050506040513d60208110156113aa57600080fd5b50519050801580159061089a5750600c54101592915050565b6113cb611659565b61140d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b600955565b8061141c81611b39565b6114705760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206465726567697374657261626c6500000000000000000000604482015290519081900360640190fd5b60105460408051600160e01b63a30788150281526001600160a01b038086166004830152915185933393169163a3078815916024808301926020929190829003018186803b1580156114c157600080fd5b505afa1580156114d5573d6000803e3d6000fd5b505050506040513d60208110156114eb57600080fd5b50516001600160a01b03161461154b5760408051600160e51b62461bcd02815260206004820152601660248201527f6d757374206265206461726b6e6f6465206f776e657200000000000000000000604482015290519081900360640190fd5b61155483612348565b505050565b60105460408051600160e41b630ee594a50281526001600160a01b0384811660048301529151606093929092169163ee594a5091602480820192600092909190829003018186803b1580156115ad57600080fd5b505afa1580156115c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405260208110156115ea57600080fd5b81019080805164010000000081111561160257600080fd5b8201602081018481111561161557600080fd5b815164010000000081118282018710171561162f57600080fd5b50909695505050505050565b600f546001600160a01b031681565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b600e546116e15761167961164a565b6001600160a01b0316336001600160a01b0316146116e15760408051600160e51b62461bcd02815260206004820152601d60248201527f6e6f7420617574686f72697a6564202866697273742065706f63687329000000604482015290519081900360640190fd5b600754600c546116f69163ffffffff6120b016565b43101561174d5760408051600160e51b62461bcd02815260206004820152601d60248201527f65706f636820696e74657276616c20686173206e6f7420706173736564000000604482015290519081900360640190fd5b600b8054600d55600c8054600e556040805180820190915243600019810140808352602090920181905292819055919055600280546004556003549055600554600854146117d957600854600581905560408051828152602081019290925280517f7c77c94944e9e4e5b0d46f1297127d060020792687cd743401d782346c68f6559281900390910190a15b6006546009541461182857600954600681905560408051828152602081019290925280517f6d520e46e5714982ddf8cb6216bcb3e1c1d5b79d337afc305335f819394f5d6a9281900390910190a15b600754600a541461187757600a54600781905560408051828152602081019290925280517fb218cde2730b79a0667ddf869466ee66a12ef56fe65fa4986a590f8a7108c9de9281900390910190a15b6011546012546001600160a01b039081169116146118ef57601254601180546001600160a01b0319166001600160a01b039283169081179182905560408051929093168252602082015281517f933228a1c3ba8fadd3ce47a9db5b898be647f89af99ba7c1b9a655f59ea306c8929181900390910190a15b60405181907faf2fc4796f2932ce294c3684deffe5098d3ef65dc2dd64efa80ef94eed88b01e90600090a250565b6010546001600160a01b031681565b60055481565b6011546001600160a01b031681565b611949611659565b61198b5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b6001600160a01b0381166119e95760408051600160e51b62461bcd02815260206004820152601760248201527f696e76616c696420736c61736865722061646472657373000000000000000000604482015290519081900360640190fd5b601280546001600160a01b0319166001600160a01b0392909216919091179055565b60105460408051600160e01b63cad413570281526001600160a01b0384811660048301529151600093929092169163cad4135791602480820192602092909190829003018186803b15801561095057600080fd5b611a67611659565b611aa95760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b60105460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b158015611afa57600080fd5b505af11580156110af573d6000803e3d6000fd5b60408051808201909152600b548152600c54602082015260009061114990839061242a565b60065481565b60105460408051600160e11b62c985b70281526001600160a01b0384811660048301529151600093849316916301930b6e916024808301926020929190829003018186803b158015611b8a57600080fd5b505afa158015611b9e573d6000803e3d6000fd5b505050506040513d6020811015611bb457600080fd5b50519050611bc183611b0e565b801561089a57501592915050565b60608180611bdc57506002545b610c7c8482600061210d565b611bf0611659565b611c325760408051600160e51b62461bcd02815260206004820181905260248201526000805160206126e4833981519152604482015290519081900360640190fd5b611c3b8161256b565b50565b80611c48816110b6565b611c8657604051600160e51b62461bcd02815260040180806020018281038252602b8152602001806126b9602b913960400191505060405180910390fd5b60105460408051600160e01b63a30788150281526001600160a01b0385811660048301529151600093929092169163a307881591602480820192602092909190829003018186803b158015611cda57600080fd5b505afa158015611cee573d6000803e3d6000fd5b505050506040513d6020811015611d0457600080fd5b505160105460408051600160e01b63cad413570281526001600160a01b0387811660048301529151939450600093919092169163cad41357916024808301926020929190829003018186803b158015611d5c57600080fd5b505afa158015611d70573d6000803e3d6000fd5b505050506040513d6020811015611d8657600080fd5b505160105460408051600160e11b6320da21c90281526001600160a01b03888116600483015291519394509116916341b443929160248082019260009290919082900301818387803b158015611ddb57600080fd5b505af1158015611def573d6000803e3d6000fd5b5050600f5460408051600160e01b63a9059cbb0281526001600160a01b03878116600483015260248201879052915191909216935063a9059cbb925060448083019260209291908290030181600087803b158015611e4c57600080fd5b505af1158015611e60573d6000803e3d6000fd5b505050506040513d6020811015611e7657600080fd5b5051611ecc5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b6040805182815290516001600160a01b038416917f96ab9e56c79eee4a72db6e2879cbfbecdba5c65b411f4861824e66b89df19764919081900360200190a250505050565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015611f965780601f10611f6b57610100808354040283529160200191611f96565b820191906000526020600020905b815481529060010190602001808311611f7957829003601f168201915b505050505081565b60105460408051600160e21b6338b5f1930281526001600160a01b03848116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d602081101561201a57600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038781166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b15801561207157600080fd5b505afa158015612085573d6000803e3d6000fd5b505050506040513d602081101561209b57600080fd5b5051905081158015610c7c5750159392505050565b60008282018381101561089a5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6060828061211a57506002545b606081604051908082528060200260200182016040528015612146578160200160208202803883390190505b5090506000866001600160a01b0381166121d757601060009054906101000a90046001600160a01b03166001600160a01b0316631bce6ff36040518163ffffffff1660e01b815260040160206040518083038186803b1580156121a857600080fd5b505afa1580156121bc573d6000803e3d6000fd5b505050506040513d60208110156121d257600080fd5b505190505b8382101561162f576001600160a01b0381166121f25761162f565b6000861561220a576122038261130a565b9050612216565b61221382611b0e565b90505b806122a05760105460408051600160e11b6355b9f18b0281526001600160a01b0385811660048301529151919092169163ab73e316916024808301926020929190829003018186803b15801561226b57600080fd5b505afa15801561227f573d6000803e3d6000fd5b505050506040513d602081101561229557600080fd5b505191506121d79050565b818484815181106122ad57fe5b6001600160a01b0392831660209182029290920181019190915260105460408051600160e11b6355b9f18b02815286851660048201529051919093169263ab73e316926024808301939192829003018186803b15801561230c57600080fd5b505afa158015612320573d6000803e3d6000fd5b505050506040513d602081101561233657600080fd5b50516001939093019291506121d79050565b601054600754600c546001600160a01b0390921691633ac39d4b9184916123749163ffffffff6120b016565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050600060405180830381600087803b1580156123c357600080fd5b505af11580156123d7573d6000803e3d6000fd5b50506003546123f092509050600163ffffffff61260e16565b6003556040516001600160a01b038216907f2dc89de5703d2c341a22ebfc7c4d3f197e5e1f0c19bc2e1135f387163cb927e490600090a250565b60105460408051600160e21b6338b5f1930281526001600160a01b03858116600483015291516000938493169163e2d7c64c916024808301926020929190829003018186803b15801561247c57600080fd5b505afa158015612490573d6000803e3d6000fd5b505050506040513d60208110156124a657600080fd5b505160105460408051600160e11b62c985b70281526001600160a01b038881166004830152915193945060009391909216916301930b6e916024808301926020929190829003018186803b1580156124fd57600080fd5b505afa158015612511573d6000803e3d6000fd5b505050506040513d602081101561252757600080fd5b5051905060008215801590612540575084602001518311155b905060008215806125545750856020015183115b90508180156125605750805b979650505050505050565b6001600160a01b0381166125b357604051600160e51b62461bcd0281526004018080602001828103825260268152602001806126936026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000828211156126685760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b5090039056fe6d75737420626520726566756e646564206f72206e6576657220726567697374657265644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573736d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f63684f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a165627a7a723058208517b004b2026d01b1448d146ce097bb267c9649ace695b74d180d77473999a80029", - "sourceMap": "375:21260:3:-;;;4707:847;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:847:3;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4707:847:3;;;;;;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;;4707:847:3;;;;;;;;;;;;;;;;;;;;;;657:6:35;:19;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;4707:847:3;;-1:-1:-1;4707:847:3;;-1:-1:-1;4707:847:3;;;;;;;;-1:-1:-1;;;;;724:6:35;;657;691:40;;657:6;;691:40;4951:18:3;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;4980:5:3;:21;;-1:-1:-1;;;;;4980:21:3;;;-1:-1:-1;;;;;;4980:21:3;;;;;;;5011:3;:17;;;;;;;;;;;;;;;5039:11;:26;;;5075:15;:29;5115:14;:32;;;-1:-1:-1;5157:35:3;-1:-1:-1;5203:44:3;;;-1:-1:-1;5257:47:3;-1:-1:-1;5330:117:3;;;;;;;;;5379:12;-1:-1:-1;;5379:16:3;;5369:27;5330:117;;;;;;;;;;-1:-1:-1;5315:132:3;;;;;;4980:5;-1:-1:-1;5457:16:3;;;-1:-1:-1;5483:25:3;;;-1:-1:-1;5518:29:3;375:21260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;375:21260:3;;;-1:-1:-1;375:21260:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "375:21260:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;375:21260:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16131:237;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16131:237:3;-1:-1:-1;;;;;16131:237:3;;:::i;:::-;;;;;;;;;;;;;;;;;;859:36;;;:::i;:::-;;;;;;;;;;;;;;;;10227:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10227:161:3;;:::i;:::-;;826:27;;;:::i;13895:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13895:143:3;-1:-1:-1;;;;;13895:143:3;;:::i;:::-;;;;-1:-1:-1;;;;;13895:143:3;;;;;;;;;;;;;;1798:34;;;:::i;6248:739::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;6248:739:3;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6248:739:3;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6248:739:3;;;;;;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;-1:-1;6248:739:3;;-1:-1:-1;6248:739:3;-1:-1:-1;6248:739:3;:::i;16515:247::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16515:247:3;-1:-1:-1;;;;;16515:247:3;;:::i;15680:285::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15680:285:3;;;;;;;;:::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;15680:285:3;;;;;;;;;;;;;;;;;1345:39;;;:::i;1064:35::-;;;:::i;11984:812::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11984:812:3;;;;;;;;;;;;;;;;;;;:::i;18266:195::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18266:195:3;-1:-1:-1;;;;;18266:195:3;;:::i;1461:26::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1270:30;;;:::i;10875:197::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10875:197:3;;:::i;9954:89::-;;;:::i;1306:33::-;;;:::i;1599:137:35:-;;;:::i;901:40:3:-;;;:::i;1430:25::-;;;:::i;18757:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18757:156:3;-1:-1:-1;;;;;18757:156:3;;:::i;16836:237::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16836:237:3;-1:-1:-1;;;;;16836:237:3;;:::i;10530:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10530:173:3;;:::i;7392:161::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7392:161:3;-1:-1:-1;;;;;7392:161:3;;:::i;14481:148::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14481:148:3;-1:-1:-1;;;;;14481:148:3;;:::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;14481:148:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1556:19;;;:::i;814:77:35:-;;;:::i;1165:90::-;;;:::i;7729:1710:3:-;;;:::i;1653:34::-;;;:::i;997:26::-;;;:::i;1762:30::-;;;:::i;11224:184::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11224:184:3;-1:-1:-1;;;;;11224:184:3;;:::i;14191:133::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14191:133:3;-1:-1:-1;;;;;14191:133:3;;:::i;9627:121::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9627:121:3;-1:-1:-1;;;;;9627:121:3;;:::i;18533:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18533:140:3;-1:-1:-1;;;;;18533:140:3;;:::i;1029:29::-;;;:::i;17252:378::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17252:378:3;-1:-1:-1;;;;;17252:378:3;;:::i;15257:265::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;15257:265:3;;;;;;;;:::i;1885:107:35:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;13181:550:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13181:550:3;-1:-1:-1;;;;;13181:550:3;;:::i;451:21::-;;;:::i;17831:280::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17831:280:3;-1:-1:-1;;;;;17831:280:3;;:::i;16131:237::-;16245:5;;:39;;;-1:-1:-1;;;;;16245:39:3;;-1:-1:-1;;;;;16245:39:3;;;;;;;;;16206:4;;;;16245:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;16245:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16245:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16245:39:3;;-1:-1:-1;16301:17:3;;;;;:60;;-1:-1:-1;16337:24:3;;16322:39;;16301:60;16294:67;16131:237;-1:-1:-1;;;16131:237:3:o;859:36::-;;;;:::o;10227:161::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;10347:15:3;:34;10227:161::o;826:27::-;;;;:::o;13895:143::-;13999:5;;:32;;;-1:-1:-1;;;;;13999:32:3;;-1:-1:-1;;;;;13999:32:3;;;;;;;;;13965:15;;13999:5;;;;;:19;;:32;;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;13999:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13999:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13999:32:3;;13895:143;-1:-1:-1;;13895:143:3:o;1798:34::-;;;-1:-1:-1;;;;;1798:34:3;;:::o;6248:739::-;6336:11;3450:23;3461:11;3450:10;:23::i;:::-;3442:72;;;;-1:-1:-1;;;;;3442:72:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6438:11;;6502:3;;6539:5;;6502:50;;;-1:-1:-1;;;;;6502:50:3;;6519:10;6502:50;;;;-1:-1:-1;;;;;6539:5:3;;;6502:50;;;;;;;;;;;;:3;;;;;:16;;:50;;;;;;;;;;;;;;6423:12;6502:3;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;6502:50:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6502:50:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6502:50:3;6494:83;;;;;-1:-1:-1;;;;;6494:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;6635:5;;6789:20;;6760:24;;-1:-1:-1;;;;;6635:5:3;;;;:20;;6669:11;;6694:10;;6718:4;;6736:10;;;;6760:50;;;:28;:50;:::i;:::-;6824:1;6635:200;;;;;;;;;;;;;-1:-1:-1;;;;;6635:200:3;-1:-1:-1;;;;;6635:200:3;;;;;;-1:-1:-1;;;;;6635:200:3;-1:-1:-1;;;;;6635:200:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6635:200:3;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6635:200:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;6870:21:3;;:28;;-1:-1:-1;6870:21:3;-1:-1:-1;6896:1:3;6870:28;:25;:28;:::i;:::-;6846:21;:52;6940:40;;;;;;;;-1:-1:-1;;;;;6940:40:3;;;;;;;;;;;;;3524:1;6248:739;;;;:::o;16515:247::-;16633:5;;:41;;;-1:-1:-1;;;;;16633:41:3;;-1:-1:-1;;;;;16633:41:3;;;;;;;;;16592:4;;;;16633:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;15680:285:3;15765:16;15809:6;15829:10;15825:74;;-1:-1:-1;15863:25:3;;15825:74;15915:43;15938:6;15946:5;15953:4;15915:22;:43::i;:::-;15908:50;15680:285;-1:-1:-1;;;;15680:285:3:o;1345:39::-;;;;:::o;1064:35::-;;;;:::o;11984:812::-;4114:7;;-1:-1:-1;;;;;4114:7:3;4126:10;4106:30;4098:58;;;;;-1:-1:-1;;;;;4098:58:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12129:5;;:27;;;-1:-1:-1;;;;;12129:27:3;;-1:-1:-1;;;;;12129:27:3;;;;;;;;;12111:15;;12159:1;;12129:5;;:18;;:27;;;;;;;;;;;;;;:5;:27;;;5:2:-1;;;;30:1;27;20:12;5:2;12129:27:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12129:27:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12129:27:3;:31;;;;;;;-1:-1:-1;12170:14:3;12197:1;12129:31;12264:5;;:42;;;-1:-1:-1;;;;;12264:42:3;;-1:-1:-1;;;;;12264:42:3;;;;;;;;;;;;;;;12187:11;;;;;-1:-1:-1;12264:5:3;;:24;;:42;;;;;:5;;:42;;;;;;;;:5;;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;12264:42:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12264:42:3;;;;12393:25;12410:7;12393:16;:25::i;:::-;12389:83;;;12434:27;12453:7;12434:18;:27::i;:::-;12607:3;;12620:5;;:33;;;-1:-1:-1;;;;;12620:33:3;;-1:-1:-1;;;;;12620:33:3;;;;;;;;;12607:3;;;;:12;;12620:5;;;;:19;;:33;;;;;;;;;;;;;;;:5;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12620:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12620:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12620:33:3;12607:55;;;;;;;;;;-1:-1:-1;;;;;12607:55:3;;;;;;;;;;;;;;;;;;;12620:33;;12607:55;;;;;;;-1:-1:-1;12607:55:3;;;;5:2:-1;;;;30:1;27;20:12;5:2;12607:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12607:55:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12607:55:3;12599:90;;;;;-1:-1:-1;;;;;12599:90:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;12707:3;;12720:5;;:33;;;-1:-1:-1;;;;;12720:33:3;;-1:-1:-1;;;;;12720:33:3;;;;;;;;;12707:3;;;;:12;;12720:5;;;;:19;;:33;;;;;;;;;;;;;;;:5;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;12720:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12720:33:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12720:33:3;12707:55;;;;;;;;;;-1:-1:-1;;;;;12707:55:3;;;;;;;;;;;;;;;;;;;12720:33;;12707:55;;;;;;;-1:-1:-1;12707:55:3;;;;5:2:-1;;;;30:1;27;20:12;5:2;12707:55:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12707:55:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12707:55:3;12699:90;;;;;-1:-1:-1;;;;;12699:90:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;4166:1;;11984:812;;;:::o;18266:195::-;18330:4;18353:27;18368:11;18353:14;:27::i;:::-;:101;;;;-1:-1:-1;18429:25:3;;18384:5;;:41;;;-1:-1:-1;;;;;18384:41:3;;-1:-1:-1;;;;;18384:41:3;;;;;;;;;:5;;;;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;18384:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18384:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18384:41:3;:70;;18353:101;18346:108;18266:195;-1:-1:-1;;18266:195:3:o;1461:26::-;;;;;;:::o;1270:30::-;;;;:::o;10875:197::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;11013:24:3;:52;10875:197::o;9954:89::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;10014:5:3;;;;;;;;;-1:-1:-1;;;;;10014:5:3;-1:-1:-1;;;;;10014:20:3;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10014:22:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10014:22:3;;;;9954:89::o;1306:33::-;;;;:::o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;901:40:3:-;;;;:::o;1430:25::-;;;;;;:::o;18757:156::-;18859:47;;;;;;;;;18892:13;18859:47;;;;;;;;;18836:4;;18859:47;;18879:11;;18859:19;:47::i;16836:237::-;16943:5;;:41;;;-1:-1:-1;;;;;16943:41:3;;-1:-1:-1;;;;;16943:41:3;;;;;;;;;16902:4;;;;16943:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;16943:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16943:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16943:41:3;;-1:-1:-1;17001:19:3;;;;;:65;;-1:-1:-1;17042:24:3;;-1:-1:-1;17024:42:3;;16836:237;-1:-1:-1;;16836:237:3:o;10530:173::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;10656:18:3;:40;10530:173::o;7392:161::-;7461:11;3924:29;3941:11;3924:16;:29::i;:::-;3916:64;;;;;-1:-1:-1;;;;;3916:64:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;3229:5;;:32;;;-1:-1:-1;;;;;3229:32:3;;-1:-1:-1;;;;;3229:32:3;;;;;;;;;7492:11;;3265:10;;3229:5;;:19;;:32;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;3229:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3229:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3229:32:3;-1:-1:-1;;;;;3229:46:3;;3221:81;;;;;-1:-1:-1;;;;;3221:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;7515:31;7534:11;7515:18;:31::i;:::-;3990:1;7392:161;;:::o;14481:148::-;14586:5;;:36;;;-1:-1:-1;;;;;14586:36:3;;-1:-1:-1;;;;;14586:36:3;;;;;;;;;14555:12;;14586:5;;;;;:23;;:36;;;;;:5;;:36;;;;;;;;:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;14586:36:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14586:36:3;;;;;;39:16:-1;36:1;17:17;2:54;101:4;14586:36:3;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;14586:36:3;;;;;;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;14586:36:3;;14481:148;-1:-1:-1;;;;;;14481:148:3:o;1556:19::-;;;-1:-1:-1;;;;;1556:19:3;;:::o;814:77:35:-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;7729:1710:3:-;7769:25;;7765:199;;7912:7;:5;:7::i;:::-;-1:-1:-1;;;;;7898:21:3;:10;-1:-1:-1;;;;;7898:21:3;;7890:63;;;;;-1:-1:-1;;;;;7890:63:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8081:20;;8052:24;;:50;;;:28;:50;:::i;:::-;8036:12;:66;;8028:108;;;;;-1:-1:-1;;;;;8028:108:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;8276:12;8260:28;;:13;:28;;;;;;8313:90;;;;;;;;;8184:12;-1:-1:-1;;8184:16:3;;8174:27;8313:90;;;;;;;;;;8298:105;;;;;;;-1:-1:-1;8485:12:3;;8457:25;:40;-1:-1:-1;8522:21:3;8507:36;;8652:11;;-1:-1:-1;8633:15:3;:30;8629:160;;8693:15;;8679:11;:29;;;8727:51;;;;;;;;;;;;;;;;;;;;;;;;;8629:160;8824:14;;8802:18;;:36;8798:181;;8871:18;;8854:14;:35;;;8908:60;;;;;;;;;;;;;;;;;;;;;;;;;8798:181;9020:20;;8992:24;;:48;8988:223;;9079:24;;9056:20;:47;;;9122:78;;;;;;;;;;;;;;;;;;;;;;;;;8988:223;9239:7;;9224:11;;-1:-1:-1;;;;;9224:11:3;;;9239:7;;9224:22;9220:150;;9272:11;;9262:7;:21;;-1:-1:-1;;;;;;9262:21:3;-1:-1:-1;;;;;9272:11:3;;;9262:21;;;;;;;9302:57;;;9328:7;;;;9302:57;;;;;;;;;;;;;;;;;;;9220:150;9410:22;;9422:9;;9410:22;;;;;7729:1710;:::o;1653:34::-;;;-1:-1:-1;;;;;1653:34:3;;:::o;997:26::-;;;;:::o;1762:30::-;;;-1:-1:-1;;;;;1762:30:3;;:::o;11224:184::-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;11310:31:3;;11302:67;;;;;-1:-1:-1;;;;;11302:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;11379:11;:22;;-1:-1:-1;;;;;;11379:22:3;-1:-1:-1;;;;;11379:22:3;;;;;;;;;;11224:184::o;14191:133::-;14286:5;;:31;;;-1:-1:-1;;;;;14286:31:3;;-1:-1:-1;;;;;14286:31:3;;;;;;;;;14260:7;;14286:5;;;;;:18;;:31;;;;;;;;;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;9627:121:3;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;9707:5:3;;:34;;;-1:-1:-1;;;;;9707:34:3;;-1:-1:-1;;;;;9707:34:3;;;;;;;;;:5;;;;;:23;;:34;;;;;:5;;:34;;;;;;;:5;;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;9707:34:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;18533:140:3;18620:46;;;;;;;;;18653:12;18620:46;;;;;;;;;18597:4;;18620:46;;18640:11;;18620:19;:46::i;1029:29::-;;;;:::o;17252:378::-;17361:5;;:41;;;-1:-1:-1;;;;;17361:41:3;;-1:-1:-1;;;;;17361:41:3;;;;;;;;;17320:4;;;;17361:5;;:28;;:41;;;;;;;;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;17361:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17361:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17361:41:3;;-1:-1:-1;17575:25:3;17588:11;17575:12;:25::i;:::-;:48;;;;-1:-1:-1;17604:19:3;;17252:378;-1:-1:-1;;17252:378:3:o;15257:265::-;15334:16;15378:6;15398:10;15394:61;;-1:-1:-1;15432:12:3;;15394:61;15471:44;15494:6;15502:5;15509;15471:22;:44::i;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:35;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;13181:550:3:-;13242:11;3662:25;3675:11;3662:12;:25::i;:::-;3654:81;;;;-1:-1:-1;;;;;3654:81:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13289:5;;:32;;;-1:-1:-1;;;;;13289:32:3;;-1:-1:-1;;;;;13289:32:3;;;;;;;;;13265:21;;13289:5;;;;;:19;;:32;;;;;;;;;;;;;;;:5;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;13289:32:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13289:32:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13289:32:3;13385:5;;:31;;;-1:-1:-1;;;;;13385:31:3;;-1:-1:-1;;;;;13385:31:3;;;;;;;;;13289:32;;-1:-1:-1;13368:14:3;;13385:5;;;;;:18;;:31;;;;;13289:32;;13385:31;;;;;;;:5;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;13385:31:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13385:31:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13385:31:3;13475:5;;:33;;;-1:-1:-1;;;;;13475:33:3;;-1:-1:-1;;;;;13475:33:3;;;;;;;;;13385:31;;-1:-1:-1;13475:5:3;;;:20;;:33;;;;;:5;;:33;;;;;;;;:5;;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;13475:33:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13575:3:3;;:35;;;-1:-1:-1;;;;;13575:35:3;;-1:-1:-1;;;;;13575:35:3;;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;13575:12:3;;-1:-1:-1;13575:35:3;;;;;;;;;;;;;;:3;;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;13575:35:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13575:35:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13575:35:3;13567:68;;;;;-1:-1:-1;;;;;13567:68:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;13677:47;;;;;;;;-1:-1:-1;;;;;13677:47:3;;;;;;;;;;;;;3745:1;;13181:550;;:::o;451:21::-;;;;;;;;;;;;;;;-1:-1:-1;;451:21:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17831:280::-;17932:5;;:39;;;-1:-1:-1;;;;;17932:39:3;;-1:-1:-1;;;;;17932:39:3;;;;;;;;;17893:4;;;;17932:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;17932:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17932:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17932:39:3;18006:5;;:41;;;-1:-1:-1;;;;;18006:41:3;;-1:-1:-1;;;;;18006:41:3;;;;;;;;;17932:39;;-1:-1:-1;17981:22:3;;18006:5;;;;;:28;;:41;;;;;17932:39;;18006:41;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;18006:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18006:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18006:41:3;;-1:-1:-1;18064:17:3;;:40;;;;-1:-1:-1;18085:19:3;;18057:47;-1:-1:-1;;;17831:280:3:o;834:176:34:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;20042:1165:3;20152:16;20196:6;20216:10;20212:61;;-1:-1:-1;20250:12:3;;20212:61;20283:22;20322:5;20308:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;20308:20:3;-1:-1:-1;20283:45:3;-1:-1:-1;20388:9:3;20426:6;-1:-1:-1;;;;;20446:18:3;;20442:69;;20487:5;;;;;;;;;-1:-1:-1;;;;;20487:5:3;-1:-1:-1;;;;;20487:11:3;;:13;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20487:13:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20487:13:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20487:13:3;;-1:-1:-1;20442:69:3;20602:5;20598:1;:9;20591:588;;;-1:-1:-1;;;;;20627:18:3;;20623:62;;20665:5;;20623:62;20766:16;20800:17;20796:174;;;20851:33;20879:4;20851:27;:33::i;:::-;20837:47;;20796:174;;;20937:18;20950:4;20937:12;:18::i;:::-;20923:32;;20796:174;20988:11;20983:100;;21026:5;;:16;;;-1:-1:-1;;;;;21026:16:3;;-1:-1:-1;;;;;21026:16:3;;;;;;;;;:5;;;;;:10;;:16;;;;;;;;;;;;;;:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;21026:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21026:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21026:16:3;;-1:-1:-1;21060:8:3;;-1:-1:-1;21060:8:3;20983:100;21107:4;21096:5;21102:1;21096:8;;;;;;;;-1:-1:-1;;;;;21096:15:3;;;:8;;;;;;;;;;:15;;;;21132:5;;:16;;;-1:-1:-1;;;;;21132:16:3;;;;;;;;;;;:5;;;;;:10;;:16;;;;;21096:8;;21132:16;;;;;:5;:16;;;5:2:-1;;;;30:1;27;20:12;5:2;21132:16:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21132:16:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21132:16:3;21167:1;21162:6;;;;;21132:16;-1:-1:-1;20591:588:3;;-1:-1:-1;20591:588:3;21273:360;21388:5;;21465:20;;21436:24;;-1:-1:-1;;;;;21388:5:3;;;;:34;;21423:11;;21436:50;;;:28;:50;:::i;:::-;21388:99;;;;;;;;;;;;;-1:-1:-1;;;;;21388:99:3;-1:-1:-1;;;;;21388:99:3;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21388:99:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;21521:21:3;;:28;;-1:-1:-1;21521:21:3;-1:-1:-1;21547:1:3;21521:28;:25;:28;:::i;:::-;21497:21;:52;21590:36;;-1:-1:-1;;;;;21590:36:3;;;;;;;;21273:360;:::o;19119:608::-;19251:5;;:39;;;-1:-1:-1;;;;;19251:39:3;;-1:-1:-1;;;;;19251:39:3;;;;;;;;;19212:4;;;;19251:5;;:26;;:39;;;;;;;;;;;;;;:5;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;19251:39:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19251:39:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19251:39:3;19325:5;;:41;;;-1:-1:-1;;;;;19325:41:3;;-1:-1:-1;;;;;19325:41:3;;;;;;;;;19251:39;;-1:-1:-1;19300:22:3;;19325:5;;;;;:28;;:41;;;;;19251:39;;19325:41;;;;;;;:5;:41;;;5:2:-1;;;;30:1;27;20:12;5:2;19325:41:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19325:41:3;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19325:41:3;;-1:-1:-1;19376:15:3;19394:17;;;;;:55;;;19431:6;:18;;;19415:12;:34;;19394:55;19376:73;-1:-1:-1;19459:20:3;19482:19;;;:58;;;19522:6;:18;;;19505:14;:35;19482:58;19459:81;;19691:10;:29;;;;;19705:15;19691:29;19684:36;19119:608;-1:-1:-1;;;;;;;19119:608:3:o;2093:225:35:-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../RenToken/RenToken.sol\";\nimport \"../DarknodeSlasher/DarknodeSlasher.sol\";\nimport \"./DarknodeRegistryStore.sol\";\n\n/// @notice DarknodeRegistry is responsible for the registration and\n/// deregistration of Darknodes.\ncontract DarknodeRegistry is Ownable {\n using SafeMath for uint256;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice Darknode pods are shuffled after a fixed number of blocks.\n /// An Epoch stores an epoch hash used as an (insecure) RNG seed, and the\n /// blocknumber which restricts when the next epoch can be called.\n struct Epoch {\n uint256 epochhash;\n uint256 blocknumber;\n }\n\n uint256 public numDarknodes;\n uint256 public numDarknodesNextEpoch;\n uint256 public numDarknodesPreviousEpoch;\n\n /// Variables used to parameterize behavior.\n uint256 public minimumBond;\n uint256 public minimumPodSize;\n uint256 public minimumEpochInterval;\n\n /// When one of the above variables is modified, it is only updated when the\n /// next epoch is called. These variables store the values for the next epoch.\n uint256 public nextMinimumBond;\n uint256 public nextMinimumPodSize;\n uint256 public nextMinimumEpochInterval;\n\n /// The current and previous epoch\n Epoch public currentEpoch;\n Epoch public previousEpoch;\n\n /// Republic ERC20 token contract used to transfer bonds.\n RenToken public ren;\n\n /// Darknode Registry Store is the storage contract for darknodes.\n DarknodeRegistryStore public store;\n\n /// Darknode Slasher allows darknodes to vote on bond slashing.\n DarknodeSlasher public slasher;\n DarknodeSlasher public nextSlasher;\n\n /// @notice Emitted when a darknode is registered.\n /// @param _darknodeID The darknode ID that was registered.\n /// @param _bond The amount of REN that was transferred as bond.\n event LogDarknodeRegistered(address indexed _darknodeID, uint256 _bond);\n\n /// @notice Emitted when a darknode is deregistered.\n /// @param _darknodeID The darknode ID that was deregistered.\n event LogDarknodeDeregistered(address indexed _darknodeID);\n\n /// @notice Emitted when a refund has been made.\n /// @param _owner The address that was refunded.\n /// @param _amount The amount of REN that was refunded.\n event LogDarknodeOwnerRefunded(address indexed _owner, uint256 _amount);\n\n /// @notice Emitted when a new epoch has begun.\n event LogNewEpoch(uint256 indexed epochhash);\n\n /// @notice Emitted when a constructor parameter has been updated.\n event LogMinimumBondUpdated(uint256 previousMinimumBond, uint256 nextMinimumBond);\n event LogMinimumPodSizeUpdated(uint256 previousMinimumPodSize, uint256 nextMinimumPodSize);\n event LogMinimumEpochIntervalUpdated(uint256 previousMinimumEpochInterval, uint256 nextMinimumEpochInterval);\n event LogSlasherUpdated(address previousSlasher, address nextSlasher);\n\n /// @notice Restrict a function to the owner that registered the darknode.\n modifier onlyDarknodeOwner(address _darknodeID) {\n require(store.darknodeOwner(_darknodeID) == msg.sender, \"must be darknode owner\");\n _;\n }\n\n /// @notice Restrict a function to unregistered darknodes.\n modifier onlyRefunded(address _darknodeID) {\n require(isRefunded(_darknodeID), \"must be refunded or never registered\");\n _;\n }\n\n /// @notice Restrict a function to refundable darknodes.\n modifier onlyRefundable(address _darknodeID) {\n require(isRefundable(_darknodeID), \"must be deregistered for at least one epoch\");\n _;\n }\n\n /// @notice Restrict a function to registered nodes without a pending\n /// deregistration.\n modifier onlyDeregisterable(address _darknodeID) {\n require(isDeregisterable(_darknodeID), \"must be deregisterable\");\n _;\n }\n\n /// @notice Restrict a function to the Slasher contract.\n modifier onlySlasher() {\n require(address(slasher) == msg.sender, \"must be slasher\");\n _;\n }\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _renAddress The address of the RenToken contract.\n /// @param _storeAddress The address of the DarknodeRegistryStore contract.\n /// @param _minimumBond The minimum bond amount that can be submitted by a\n /// Darknode.\n /// @param _minimumPodSize The minimum size of a Darknode pod.\n /// @param _minimumEpochInterval The minimum number of blocks between\n /// epochs.\n constructor(\n string memory _VERSION,\n RenToken _renAddress,\n DarknodeRegistryStore _storeAddress,\n uint256 _minimumBond,\n uint256 _minimumPodSize,\n uint256 _minimumEpochInterval\n ) public {\n VERSION = _VERSION;\n\n store = _storeAddress;\n ren = _renAddress;\n\n minimumBond = _minimumBond;\n nextMinimumBond = minimumBond;\n\n minimumPodSize = _minimumPodSize;\n nextMinimumPodSize = minimumPodSize;\n\n minimumEpochInterval = _minimumEpochInterval;\n nextMinimumEpochInterval = minimumEpochInterval;\n\n currentEpoch = Epoch({\n epochhash: uint256(blockhash(block.number - 1)),\n blocknumber: block.number\n });\n numDarknodes = 0;\n numDarknodesNextEpoch = 0;\n numDarknodesPreviousEpoch = 0;\n }\n\n /// @notice Register a darknode and transfer the bond to this contract.\n /// Before registering, the bond transfer must be approved in the REN\n /// contract. The caller must provide a public encryption key for the\n /// darknode. The darknode will remain pending registration until the next\n /// epoch. Only after this period can the darknode be deregistered. The\n /// caller of this method will be stored as the owner of the darknode.\n ///\n /// @param _darknodeID The darknode ID that will be registered.\n /// @param _publicKey The public key of the darknode. It is stored to allow\n /// other darknodes and traders to encrypt messages to the trader.\n function register(address _darknodeID, bytes calldata _publicKey) external onlyRefunded(_darknodeID) {\n // Use the current minimum bond as the darknode's bond.\n uint256 bond = minimumBond;\n\n // Transfer bond to store\n require(ren.transferFrom(msg.sender, address(store), bond), \"bond transfer failed\");\n\n // Flag this darknode for registration\n store.appendDarknode(\n _darknodeID,\n msg.sender,\n bond,\n _publicKey,\n currentEpoch.blocknumber.add(minimumEpochInterval),\n 0\n );\n\n numDarknodesNextEpoch = numDarknodesNextEpoch.add(1);\n\n // Emit an event.\n emit LogDarknodeRegistered(_darknodeID, bond);\n }\n\n /// @notice Deregister a darknode. The darknode will not be deregistered\n /// until the end of the epoch. After another epoch, the bond can be\n /// refunded by calling the refund method.\n /// @param _darknodeID The darknode ID that will be deregistered. The caller\n /// of this method store.darknodeRegisteredAt(_darknodeID) must be\n // the owner of this darknode.\n function deregister(address _darknodeID) external onlyDeregisterable(_darknodeID) onlyDarknodeOwner(_darknodeID) {\n deregisterDarknode(_darknodeID);\n }\n\n /// @notice Progress the epoch if it is possible to do so. This captures\n /// the current timestamp and current blockhash and overrides the current\n /// epoch.\n function epoch() external {\n if (previousEpoch.blocknumber == 0) {\n // The first epoch must be called by the owner of the contract\n require(msg.sender == owner(), \"not authorized (first epochs)\");\n }\n\n // Require that the epoch interval has passed\n require(block.number >= currentEpoch.blocknumber.add(minimumEpochInterval), \"epoch interval has not passed\");\n uint256 epochhash = uint256(blockhash(block.number - 1));\n\n // Update the epoch hash and timestamp\n previousEpoch = currentEpoch;\n currentEpoch = Epoch({\n epochhash: epochhash,\n blocknumber: block.number\n });\n\n // Update the registry information\n numDarknodesPreviousEpoch = numDarknodes;\n numDarknodes = numDarknodesNextEpoch;\n\n // If any update functions have been called, update the values now\n if (nextMinimumBond != minimumBond) {\n minimumBond = nextMinimumBond;\n emit LogMinimumBondUpdated(minimumBond, nextMinimumBond);\n }\n if (nextMinimumPodSize != minimumPodSize) {\n minimumPodSize = nextMinimumPodSize;\n emit LogMinimumPodSizeUpdated(minimumPodSize, nextMinimumPodSize);\n }\n if (nextMinimumEpochInterval != minimumEpochInterval) {\n minimumEpochInterval = nextMinimumEpochInterval;\n emit LogMinimumEpochIntervalUpdated(minimumEpochInterval, nextMinimumEpochInterval);\n }\n if (nextSlasher != slasher) {\n slasher = nextSlasher;\n emit LogSlasherUpdated(address(slasher), address(nextSlasher));\n }\n\n // Emit an event\n emit LogNewEpoch(epochhash);\n }\n\n /// @notice Allows the contract owner to initiate an ownership transfer of\n /// the DarknodeRegistryStore. \n /// @param _newOwner The address to transfer the ownership to.\n function transferStoreOwnership(address _newOwner) external onlyOwner {\n store.transferOwnership(_newOwner);\n }\n\n /// @notice Claims ownership of the store passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called when\n /// transferring from another Darknode Registry.\n function claimStoreOwnership() external onlyOwner {\n store.claimOwnership();\n }\n\n /// @notice Allows the contract owner to update the minimum bond.\n /// @param _nextMinimumBond The minimum bond amount that can be submitted by\n /// a darknode.\n function updateMinimumBond(uint256 _nextMinimumBond) external onlyOwner {\n // Will be updated next epoch\n nextMinimumBond = _nextMinimumBond;\n }\n\n /// @notice Allows the contract owner to update the minimum pod size.\n /// @param _nextMinimumPodSize The minimum size of a pod.\n function updateMinimumPodSize(uint256 _nextMinimumPodSize) external onlyOwner {\n // Will be updated next epoch\n nextMinimumPodSize = _nextMinimumPodSize;\n }\n\n /// @notice Allows the contract owner to update the minimum epoch interval.\n /// @param _nextMinimumEpochInterval The minimum number of blocks between epochs.\n function updateMinimumEpochInterval(uint256 _nextMinimumEpochInterval) external onlyOwner {\n // Will be updated next epoch\n nextMinimumEpochInterval = _nextMinimumEpochInterval;\n }\n\n /// @notice Allow the contract owner to update the DarknodeSlasher contract\n /// address.\n /// @param _slasher The new slasher address.\n function updateSlasher(DarknodeSlasher _slasher) external onlyOwner {\n require(address(_slasher) != address(0), \"invalid slasher address\");\n nextSlasher = _slasher;\n }\n\n /// @notice Allow the DarknodeSlasher contract to slash half of a darknode's\n /// bond and deregister it. The bond is distributed as follows:\n /// 1/2 is kept by the guilty prover\n /// 1/8 is rewarded to the first challenger\n /// 1/8 is rewarded to the second challenger\n /// 1/4 becomes unassigned\n /// @param _prover The guilty prover whose bond is being slashed\n /// @param _challenger1 The first of the two darknodes who submitted the challenge\n /// @param _challenger2 The second of the two darknodes who submitted the challenge\n function slash(address _prover, address _challenger1, address _challenger2)\n external\n onlySlasher\n {\n uint256 penalty = store.darknodeBond(_prover) / 2;\n uint256 reward = penalty / 4;\n\n // Slash the bond of the failed prover in half\n store.updateDarknodeBond(_prover, penalty);\n\n // If the darknode has not been deregistered then deregister it\n if (isDeregisterable(_prover)) {\n deregisterDarknode(_prover);\n }\n\n // Reward the challengers with less than the penalty so that it is not\n // worth challenging yourself\n require(ren.transfer(store.darknodeOwner(_challenger1), reward), \"reward transfer failed\");\n require(ren.transfer(store.darknodeOwner(_challenger2), reward), \"reward transfer failed\");\n }\n\n /// @notice Refund the bond of a deregistered darknode. This will make the\n /// darknode available for registration again. Anyone can call this function\n /// but the bond will always be refunded to the darknode owner.\n ///\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n /// of this method must be the owner of this darknode.\n function refund(address _darknodeID) external onlyRefundable(_darknodeID) {\n address darknodeOwner = store.darknodeOwner(_darknodeID);\n\n // Remember the bond amount\n uint256 amount = store.darknodeBond(_darknodeID);\n\n // Erase the darknode from the registry\n store.removeDarknode(_darknodeID);\n\n // Refund the owner by transferring REN\n require(ren.transfer(darknodeOwner, amount), \"bond transfer failed\");\n\n // Emit an event.\n emit LogDarknodeOwnerRefunded(darknodeOwner, amount);\n }\n\n /// @notice Retrieves the address of the account that registered a darknode.\n /// @param _darknodeID The ID of the darknode to retrieve the owner for.\n function getDarknodeOwner(address _darknodeID) external view returns (address payable) {\n return store.darknodeOwner(_darknodeID);\n }\n\n /// @notice Retrieves the bond amount of a darknode in 10^-18 REN.\n /// @param _darknodeID The ID of the darknode to retrieve the bond for.\n function getDarknodeBond(address _darknodeID) external view returns (uint256) {\n return store.darknodeBond(_darknodeID);\n }\n\n /// @notice Retrieves the encryption public key of the darknode.\n /// @param _darknodeID The ID of the darknode to retrieve the public key for.\n function getDarknodePublicKey(address _darknodeID) external view returns (bytes memory) {\n return store.darknodePublicKey(_darknodeID);\n }\n\n /// @notice Retrieves a list of darknodes which are registered for the\n /// current epoch.\n /// @param _start A darknode ID used as an offset for the list. If _start is\n /// 0x0, the first dark node will be used. _start won't be\n /// included it is not registered for the epoch.\n /// @param _count The number of darknodes to retrieve starting from _start.\n /// If _count is 0, all of the darknodes from _start are\n /// retrieved. If _count is more than the remaining number of\n /// registered darknodes, the rest of the list will contain\n /// 0x0s.\n function getDarknodes(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodes;\n }\n return getDarknodesFromEpochs(_start, count, false);\n }\n\n /// @notice Retrieves a list of darknodes which were registered for the\n /// previous epoch. See `getDarknodes` for the parameter documentation.\n function getPreviousDarknodes(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodesPreviousEpoch;\n }\n return getDarknodesFromEpochs(_start, count, true);\n }\n\n /// @notice Returns whether a darknode is scheduled to become registered\n /// at next epoch.\n /// @param _darknodeID The ID of the darknode to return\n function isPendingRegistration(address _darknodeID) external view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n return registeredAt != 0 && registeredAt > currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the pending deregistered state. In\n /// this state a darknode is still considered registered.\n function isPendingDeregistration(address _darknodeID) external view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return deregisteredAt != 0 && deregisteredAt > currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the deregistered state.\n function isDeregistered(address _darknodeID) public view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return deregisteredAt != 0 && deregisteredAt <= currentEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode can be deregistered. This is true if the\n /// darknodes is in the registered state and has not attempted to\n /// deregister yet.\n function isDeregisterable(address _darknodeID) public view returns (bool) {\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n // The Darknode is currently in the registered state and has not been\n // transitioned to the pending deregistration, or deregistered, state\n return isRegistered(_darknodeID) && deregisteredAt == 0;\n }\n\n /// @notice Returns if a darknode is in the refunded state. This is true\n /// for darknodes that have never been registered, or darknodes that have\n /// been deregistered and refunded.\n function isRefunded(address _darknodeID) public view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n return registeredAt == 0 && deregisteredAt == 0;\n }\n\n /// @notice Returns if a darknode is refundable. This is true for darknodes\n /// that have been in the deregistered state for one full epoch.\n function isRefundable(address _darknodeID) public view returns (bool) {\n return isDeregistered(_darknodeID) && store.darknodeDeregisteredAt(_darknodeID) <= previousEpoch.blocknumber;\n }\n\n /// @notice Returns if a darknode is in the registered state.\n function isRegistered(address _darknodeID) public view returns (bool) {\n return isRegisteredInEpoch(_darknodeID, currentEpoch);\n }\n\n /// @notice Returns if a darknode was in the registered state last epoch.\n function isRegisteredInPreviousEpoch(address _darknodeID) public view returns (bool) {\n return isRegisteredInEpoch(_darknodeID, previousEpoch);\n }\n\n /// @notice Returns if a darknode was in the registered state for a given\n /// epoch.\n /// @param _darknodeID The ID of the darknode\n /// @param _epoch One of currentEpoch, previousEpoch\n function isRegisteredInEpoch(address _darknodeID, Epoch memory _epoch) private view returns (bool) {\n uint256 registeredAt = store.darknodeRegisteredAt(_darknodeID);\n uint256 deregisteredAt = store.darknodeDeregisteredAt(_darknodeID);\n bool registered = registeredAt != 0 && registeredAt <= _epoch.blocknumber;\n bool notDeregistered = deregisteredAt == 0 || deregisteredAt > _epoch.blocknumber;\n // The Darknode has been registered and has not yet been deregistered,\n // although it might be pending deregistration\n return registered && notDeregistered;\n }\n\n /// @notice Returns a list of darknodes registered for either the current\n /// or the previous epoch. See `getDarknodes` for documentation on the\n /// parameters `_start` and `_count`.\n /// @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n /// the current epoch.\n function getDarknodesFromEpochs(address _start, uint256 _count, bool _usePreviousEpoch) private view returns (address[] memory) {\n uint256 count = _count;\n if (count == 0) {\n count = numDarknodes;\n }\n\n address[] memory nodes = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = store.begin();\n }\n\n // Iterate until all registered Darknodes have been collected\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n // Only include Darknodes that are currently registered\n bool includeNext;\n if (_usePreviousEpoch) {\n includeNext = isRegisteredInPreviousEpoch(next);\n } else {\n includeNext = isRegistered(next);\n }\n if (!includeNext) {\n next = store.next(next);\n continue;\n }\n nodes[n] = next;\n next = store.next(next);\n n += 1;\n }\n return nodes;\n }\n\n /// Private function called by `deregister` and `slash`\n function deregisterDarknode(address _darknodeID) private {\n // Flag the darknode for deregistration\n store.updateDarknodeDeregisteredAt(_darknodeID, currentEpoch.blocknumber.add(minimumEpochInterval));\n numDarknodesNextEpoch = numDarknodesNextEpoch.sub(1);\n\n // Emit an event\n emit LogDarknodeDeregistered(_darknodeID);\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "exportedSymbols": { - "DarknodeRegistry": [ - 2390 - ] - }, - "id": 2391, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1289, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1290, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7646, - "src": "25:63:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1291, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7535, - "src": "89:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 1292, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2808, - "src": "150:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "file": "../DarknodeSlasher/DarknodeSlasher.sol", - "id": 1293, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2722, - "src": "185:48:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "file": "./DarknodeRegistryStore.sol", - "id": 1294, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2683, - "src": "234:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1295, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 1296, - "nodeType": "InheritanceSpecifier", - "src": "404:7:3" - } - ], - "contractDependencies": [ - 7645 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeRegistry is responsible for the registration and\n deregistration of Darknodes.", - "fullyImplemented": true, - "id": 2390, - "linearizedBaseContracts": [ - 2390, - 7645 - ], - "name": "DarknodeRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1299, - "libraryName": { - "contractScope": null, - "id": 1297, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "424:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:3", - "typeName": { - "id": 1298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1301, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "451:21:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1300, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistry.Epoch", - "id": 1306, - "members": [ - { - "constant": false, - "id": 1303, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "767:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "767:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1305, - "name": "blocknumber", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "794:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Epoch", - "nodeType": "StructDefinition", - "scope": 2390, - "src": "744:76:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1308, - "name": "numDarknodes", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "826:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1310, - "name": "numDarknodesNextEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "859:36:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "859:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1312, - "name": "numDarknodesPreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "901:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1314, - "name": "minimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "997:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1316, - "name": "minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1029:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1318, - "name": "minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1064:35:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1320, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1270:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1322, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1306:33:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1324, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1345:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1326, - "name": "currentEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1430:25:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1325, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1430:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1328, - "name": "previousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1461:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1327, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1461:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1330, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1556:19:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1329, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "1556:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1332, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1653:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1331, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "1653:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1334, - "name": "slasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1762:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1333, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1336, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1798:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1335, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is registered.\n @param _darknodeID The darknode ID that was registered.\n @param _bond The amount of REN that was transferred as bond.", - "id": 1342, - "name": "LogDarknodeRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2055:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": false, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2084:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2054:44:3" - }, - "src": "2027:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is deregistered.\n @param _darknodeID The darknode ID that was deregistered.", - "id": 1346, - "name": "LogDarknodeDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2258:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2258:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:29:3" - }, - "src": "2228:59:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a refund has been made.\n @param _owner The address that was refunded.\n @param _amount The amount of REN that was refunded.", - "id": 1352, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1348, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2490:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2514:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2489:41:3" - }, - "src": "2459:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new epoch has begun.", - "id": 1356, - "name": "LogNewEpoch", - "nodeType": "EventDefinition", - "parameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1354, - "indexed": true, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "2607:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2607:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2606:27:3" - }, - "src": "2589:45:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a constructor parameter has been updated.", - "id": 1362, - "name": "LogMinimumBondUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "indexed": false, - "name": "previousMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2739:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2739:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "indexed": false, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2768:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2768:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2738:54:3" - }, - "src": "2711:82:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1368, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "indexed": false, - "name": "previousMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2829:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2829:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1366, - "indexed": false, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2861:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2828:60:3" - }, - "src": "2798:91:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1374, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1370, - "indexed": false, - "name": "previousMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2931:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "indexed": false, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2969:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2930:72:3" - }, - "src": "2894:109:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1380, - "name": "LogSlasherUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1376, - "indexed": false, - "name": "previousSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3032:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1378, - "indexed": false, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3057:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:46:3" - }, - "src": "3008:70:3" - }, - { - "body": { - "id": 1396, - "nodeType": "Block", - "src": "3211:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1387, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1382, - "src": "3249:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1385, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "3229:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "3229:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1389, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "3265:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3229:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206461726b6e6f6465206f776e6572", - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3277:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - }, - "value": "must be darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - } - ], - "id": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3221:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3221:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "3221:81:3" - }, - { - "id": 1395, - "nodeType": "PlaceholderStatement", - "src": "3312:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the owner that registered the darknode.", - "id": 1397, - "name": "onlyDarknodeOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1397, - "src": "3190:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3190:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3189:21:3" - }, - "src": "3163:157:3", - "visibility": "internal" - }, - { - "body": { - "id": 1409, - "nodeType": "Block", - "src": "3432:100:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1403, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1402, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "3450:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3450:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520726566756e646564206f72206e657665722072656769737465726564", - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - }, - "value": "must be refunded or never registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - } - ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3442:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3442:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "ExpressionStatement", - "src": "3442:72:3" - }, - { - "id": 1408, - "nodeType": "PlaceholderStatement", - "src": "3524:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to unregistered darknodes.", - "id": 1410, - "name": "onlyRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1410, - "src": "3411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3410:21:3" - }, - "src": "3389:143:3", - "visibility": "internal" - }, - { - "body": { - "id": 1422, - "nodeType": "Block", - "src": "3644:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1416, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1415, - "name": "isRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "3662:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f6368", - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3689:45:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - }, - "value": "must be deregistered for at least one epoch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - } - ], - "id": 1414, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3654:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "3654:81:3" - }, - { - "id": 1421, - "nodeType": "PlaceholderStatement", - "src": "3745:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to refundable darknodes.", - "id": 1423, - "name": "onlyRefundable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1412, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1423, - "src": "3623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3623:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:21:3" - }, - "src": "3599:154:3", - "visibility": "internal" - }, - { - "body": { - "id": 1435, - "nodeType": "Block", - "src": "3906:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1428, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "3924:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3924:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206465726567697374657261626c65", - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - }, - "value": "must be deregisterable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - } - ], - "id": 1427, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3916:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1433, - "nodeType": "ExpressionStatement", - "src": "3916:64:3" - }, - { - "id": 1434, - "nodeType": "PlaceholderStatement", - "src": "3990:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to registered nodes without a pending\n deregistration.", - "id": 1436, - "name": "onlyDeregisterable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1436, - "src": "3885:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3885:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3884:21:3" - }, - "src": "3857:141:3", - "visibility": "internal" - }, - { - "body": { - "id": 1449, - "nodeType": "Block", - "src": "4088:86:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "4114:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4106:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4106:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1442, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "4126:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4126:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4106:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520736c6173686572", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4138:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - }, - "value": "must be slasher" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - } - ], - "id": 1438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4098:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4098:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "4098:58:3" - }, - { - "id": 1448, - "nodeType": "PlaceholderStatement", - "src": "4166:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the Slasher contract.", - "id": 1450, - "name": "onlySlasher", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "4085:2:3" - }, - "src": "4065:109:3", - "visibility": "internal" - }, - { - "body": { - "id": 1528, - "nodeType": "Block", - "src": "4941:613:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1465, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "4951:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1466, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "4961:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4951:18:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1468, - "nodeType": "ExpressionStatement", - "src": "4951:18:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "4980:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1470, - "name": "_storeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4988:13:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "src": "4980:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "4980:21:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1473, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5011:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1474, - "name": "_renAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1454, - "src": "5017:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "5011:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "5011:17:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "_minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "5053:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5039:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1480, - "nodeType": "ExpressionStatement", - "src": "5039:26:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "5075:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1482, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5093:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "5075:29:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5115:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1486, - "name": "_minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "5132:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1488, - "nodeType": "ExpressionStatement", - "src": "5115:32:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "5157:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1490, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5178:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5157:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1492, - "nodeType": "ExpressionStatement", - "src": "5157:35:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5203:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1494, - "name": "_minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "5226:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5203:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1496, - "nodeType": "ExpressionStatement", - "src": "5203:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "5257:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1498, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5284:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5257:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "5257:47:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "5315:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "5379:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5379:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1504, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8327, - "src": "5369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "5424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5424:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1502, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "5330:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "5330:117:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "5315:132:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "5315:132:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "5457:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5472:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5457:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "5457:16:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1520, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5483:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5483:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "5483:25:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1524, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5518:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5518:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1527, - "nodeType": "ExpressionStatement", - "src": "5518:29:3" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _renAddress The address of the RenToken contract.\n @param _storeAddress The address of the DarknodeRegistryStore contract.\n @param _minimumBond The minimum bond amount that can be submitted by a\n Darknode.\n @param _minimumPodSize The minimum size of a Darknode pod.\n @param _minimumEpochInterval The minimum number of blocks between\n epochs.", - "id": 1529, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1452, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4728:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1451, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4728:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "name": "_renAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4760:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1453, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "4760:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "name": "_storeAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4790:35:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1455, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "4790:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_minimumBond", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4835:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4835:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "name": "_minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4865:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4898:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4898:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4718:215:3" - }, - "returnParameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "4941:0:3" - }, - "scope": 2390, - "src": "4707:847:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1584, - "nodeType": "Block", - "src": "6349:638:3", - "statements": [ - { - "assignments": [ - 1540 - ], - "declarations": [ - { - "constant": false, - "id": 1540, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 1584, - "src": "6423:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6423:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1542, - "initialValue": { - "argumentTypes": null, - "id": 1541, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "6438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6423:26:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1546, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "6519:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6519:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6539:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6531:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1551, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6547:4:3", - "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, - "id": 1544, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6502:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 8178, - "src": "6502:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6502:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1543, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "6494:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6494:83:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1555, - "nodeType": "ExpressionStatement", - "src": "6494:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6669:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1560, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "6694:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6694:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1562, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6718:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1563, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "6736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1567, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "6789:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "6760:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "6760:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "6760:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6760:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6824:1:3", - "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_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1556, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6635:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "appendDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2479, - "src": "6635:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address payable,uint256,bytes memory,uint256,uint256) external" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:200:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "6635:200:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6846:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:1:3", - "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": 1573, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "6870:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6870:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6846:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "6846:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1580, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6962:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1581, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1579, - "name": "LogDarknodeRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "6940:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1583, - "nodeType": "EmitStatement", - "src": "6935:45:3" - } - ] - }, - "documentation": "@notice Register a darknode and transfer the bond to this contract.\n Before registering, the bond transfer must be approved in the REN\n contract. The caller must provide a public encryption key for the\n darknode. The darknode will remain pending registration until the next\n epoch. Only after this period can the darknode be deregistered. The\n caller of this method will be stored as the owner of the darknode.\n\n /// @param _darknodeID The darknode ID that will be registered.\n @param _publicKey The public key of the darknode. It is stored to allow\n other darknodes and traders to encrypt messages to the trader.", - "id": 1585, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1536, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6336:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1537, - "modifierName": { - "argumentTypes": null, - "id": 1535, - "name": "onlyRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "6323:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6323:25:3" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6266:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6266:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6287:25:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6287:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6265:48:3" - }, - "returnParameters": { - "id": 1538, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:0:3" - }, - "scope": 2390, - "src": "6248:739:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1600, - "nodeType": "Block", - "src": "7505:48:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1597, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7534:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1596, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "7515:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1599, - "nodeType": "ExpressionStatement", - "src": "7515:31:3" - } - ] - }, - "documentation": "@notice Deregister a darknode. The darknode will not be deregistered\n until the end of the epoch. After another epoch, the bond can be\n refunded by calling the refund method.\n @param _darknodeID The darknode ID that will be deregistered. The caller\n of this method store.darknodeRegisteredAt(_darknodeID) must be", - "id": 1601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1590, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1591, - "modifierName": { - "argumentTypes": null, - "id": 1589, - "name": "onlyDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "7442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7442:31:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1593, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7492:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1594, - "modifierName": { - "argumentTypes": null, - "id": 1592, - "name": "onlyDarknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "7474:17:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7474:30:3" - } - ], - "name": "deregister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1587, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "7412:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7412:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7411:21:3" - }, - "returnParameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:3" - }, - "scope": 2390, - "src": "7392:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1726, - "nodeType": "Block", - "src": "7755:1684:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "7769:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "7769:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7798:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7769:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1618, - "nodeType": "IfStatement", - "src": "7765:199:3", - "trueBody": { - "id": 1617, - "nodeType": "Block", - "src": "7801:163:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "7898:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7898:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1611, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "7912:5:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7912:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7898:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420617574686f72697a6564202866697273742065706f63687329", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - }, - "value": "not authorized (first epochs)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - } - ], - "id": 1608, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "7890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7890:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1616, - "nodeType": "ExpressionStatement", - "src": "7890:63:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8036:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8036:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1625, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "8081:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1622, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8052:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "8052:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "8052:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8052:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8036:66:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "65706f636820696e74657276616c20686173206e6f7420706173736564", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8104:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - }, - "value": "epoch interval has not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - } - ], - "id": 1619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "8028:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8028:108:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1630, - "nodeType": "ExpressionStatement", - "src": "8028:108:3" - }, - { - "assignments": [ - 1632 - ], - "declarations": [ - { - "constant": false, - "id": 1632, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "8146:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8146:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8184:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8184:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8199:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1634, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8327, - "src": "8174:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8174:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8166:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8146:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1642, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "8260:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8276:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "src": "8260:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "8260:28:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1646, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8298:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1648, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "8344:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8380:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1647, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "8313:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "8313:90:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "8298:105:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1653, - "nodeType": "ExpressionStatement", - "src": "8298:105:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "8457:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1655, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8485:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8457:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "8457:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8507:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1659, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "8522:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8507:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1661, - "nodeType": "ExpressionStatement", - "src": "8507:36:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1662, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8633:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1663, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8652:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1675, - "nodeType": "IfStatement", - "src": "8629:160:3", - "trueBody": { - "id": 1674, - "nodeType": "Block", - "src": "8665:124:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1665, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8679:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1666, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8693:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8679:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1668, - "nodeType": "ExpressionStatement", - "src": "8679:29:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1670, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8749:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1671, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1669, - "name": "LogMinimumBondUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1362, - "src": "8727:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8727:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "EmitStatement", - "src": "8722:56:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1676, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8802:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1677, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8824:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8802:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1689, - "nodeType": "IfStatement", - "src": "8798:181:3", - "trueBody": { - "id": 1688, - "nodeType": "Block", - "src": "8840:139:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1679, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8854:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1680, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8871:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8854:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1682, - "nodeType": "ExpressionStatement", - "src": "8854:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8933:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1685, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1683, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "8908:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8908:60:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1687, - "nodeType": "EmitStatement", - "src": "8903:65:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1690, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "8992:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1691, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9020:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8992:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1703, - "nodeType": "IfStatement", - "src": "8988:223:3", - "trueBody": { - "id": 1702, - "nodeType": "Block", - "src": "9042:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1693, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9056:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1694, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9079:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9056:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1696, - "nodeType": "ExpressionStatement", - "src": "9056:47:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9153:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1699, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1697, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "9122:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9122:78:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "EmitStatement", - "src": "9117:83:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1704, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9224:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1705, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9239:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9224:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1721, - "nodeType": "IfStatement", - "src": "9220:150:3", - "trueBody": { - "id": 1720, - "nodeType": "Block", - "src": "9248:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1707, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1708, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9262:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1710, - "nodeType": "ExpressionStatement", - "src": "9262:21:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9328:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9320:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9320:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9346:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9338:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9338:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1711, - "name": "LogSlasherUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "9302:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9302:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1719, - "nodeType": "EmitStatement", - "src": "9297:62:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1723, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "9422:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1722, - "name": "LogNewEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "9410:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9410:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "EmitStatement", - "src": "9405:27:3" - } - ] - }, - "documentation": "@notice Progress the epoch if it is possible to do so. This captures\n the current timestamp and current blockhash and overrides the current\n epoch.", - "id": 1727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "epoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7743:2:3" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "7755:0:3" - }, - "scope": 2390, - "src": "7729:1710:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1740, - "nodeType": "Block", - "src": "9697:51:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1737, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "9731:9:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1734, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "9707:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4434, - "src": "9707:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9707:34:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "9707:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodeRegistryStore. \n @param _newOwner The address to transfer the ownership to.", - "id": 1741, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1732, - "modifierName": { - "argumentTypes": null, - "id": 1731, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "9687:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9687:9:3" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1729, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "9659:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:19:3" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:3" - }, - "scope": 2390, - "src": "9627:121:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1751, - "nodeType": "Block", - "src": "10004:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "10014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4455, - "src": "10014:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1750, - "nodeType": "ExpressionStatement", - "src": "10014:22:3" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another Darknode Registry.", - "id": 1752, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1744, - "modifierName": { - "argumentTypes": null, - "id": 1743, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "9994:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9994:9:3" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [], - "src": "9982:2:3" - }, - "returnParameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "10004:0:3" - }, - "scope": 2390, - "src": "9954:89:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1763, - "nodeType": "Block", - "src": "10299:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1759, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10347:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1760, - "name": "_nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "10365:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10347:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "10347:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum bond.\n @param _nextMinimumBond The minimum bond amount that can be submitted by\n a darknode.", - "id": 1764, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1757, - "modifierName": { - "argumentTypes": null, - "id": 1756, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "10289:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10289:9:3" - } - ], - "name": "updateMinimumBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1754, - "name": "_nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "10254:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:26:3" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [], - "src": "10299:0:3" - }, - "scope": 2390, - "src": "10227:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "10608:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1771, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "10656:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1772, - "name": "_nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "10677:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10656:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1774, - "nodeType": "ExpressionStatement", - "src": "10656:40:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum pod size.\n @param _nextMinimumPodSize The minimum size of a pod.", - "id": 1776, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1769, - "modifierName": { - "argumentTypes": null, - "id": 1768, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "10598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10598:9:3" - } - ], - "name": "updateMinimumPodSize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "name": "_nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "10560:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1765, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10559:29:3" - }, - "returnParameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [], - "src": "10608:0:3" - }, - "scope": 2390, - "src": "10530:173:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1787, - "nodeType": "Block", - "src": "10965:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1783, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "11013:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1784, - "name": "_nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "11040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11013:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "11013:52:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum epoch interval.\n @param _nextMinimumEpochInterval The minimum number of blocks between epochs.", - "id": 1788, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1781, - "modifierName": { - "argumentTypes": null, - "id": 1780, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "10955:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10955:9:3" - } - ], - "name": "updateMinimumEpochInterval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "10911:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10910:35:3" - }, - "returnParameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [], - "src": "10965:0:3" - }, - "scope": 2390, - "src": "10875:197:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1810, - "nodeType": "Block", - "src": "11292:116:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1797, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11318:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11310:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11310:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11331:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11310:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420736c61736865722061646472657373", - "id": 1803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11343:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - }, - "value": "invalid slasher address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - } - ], - "id": 1795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "11302:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1805, - "nodeType": "ExpressionStatement", - "src": "11302:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1806, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "11379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1807, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11393:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "11379:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1809, - "nodeType": "ExpressionStatement", - "src": "11379:22:3" - } - ] - }, - "documentation": "@notice Allow the contract owner to update the DarknodeSlasher contract\n address.\n @param _slasher The new slasher address.", - "id": 1811, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1793, - "modifierName": { - "argumentTypes": null, - "id": 1792, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "11282:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11282:9:3" - } - ], - "name": "updateSlasher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "name": "_slasher", - "nodeType": "VariableDeclaration", - "scope": 1811, - "src": "11247:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1789, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "11247:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11246:26:3" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [], - "src": "11292:0:3" - }, - "scope": 2390, - "src": "11224:184:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1877, - "nodeType": "Block", - "src": "12101:695:3", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "penalty", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12111:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12111:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1830, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12129:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "12129:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12129:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12129:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12111:49:3" - }, - { - "assignments": [ - 1832 - ], - "declarations": [ - { - "constant": false, - "id": 1832, - "name": "reward", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12170:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1833, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12187:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12197:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12187:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12170:28:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1840, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12289:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1841, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1837, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12264:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2589, - "src": "12264:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12264:42:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12264:42:3" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12410:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1844, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "12393:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12393:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1852, - "nodeType": "IfStatement", - "src": "12389:83:3", - "trueBody": { - "id": 1851, - "nodeType": "Block", - "src": "12420:52:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1848, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1847, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "12434:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12434:27:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1850, - "nodeType": "ExpressionStatement", - "src": "12434:27:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "12640:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1856, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12620:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12620:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12655:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12607:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "12607:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12607:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12664:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12599:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12599:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1864, - "nodeType": "ExpressionStatement", - "src": "12599:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1870, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "12740:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12720:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12720:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12720:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1872, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12755:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1866, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12707:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "12707:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12707:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1865, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12699:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1876, - "nodeType": "ExpressionStatement", - "src": "12699:90:3" - } - ] - }, - "documentation": "@notice Allow the DarknodeSlasher contract to slash half of a darknode's\n bond and deregister it. The bond is distributed as follows:\n 1/2 is kept by the guilty prover\n 1/8 is rewarded to the first challenger\n 1/8 is rewarded to the second challenger\n 1/4 becomes unassigned\n @param _prover The guilty prover whose bond is being slashed\n @param _challenger1 The first of the two darknodes who submitted the challenge\n @param _challenger2 The second of the two darknodes who submitted the challenge", - "id": 1878, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1820, - "modifierName": { - "argumentTypes": null, - "id": 1819, - "name": "onlySlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "12085:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12085:11:3" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1813, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "11999:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1815, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12016:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12016:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1817, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12038:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12038:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:61:3" - }, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "12101:0:3" - }, - "scope": 2390, - "src": "11984:812:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "13255:476:3", - "statements": [ - { - "assignments": [ - 1887 - ], - "declarations": [ - { - "constant": false, - "id": 1887, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13265:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13265:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1892, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13309:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1888, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13289:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13289:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13289:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13265:56:3" - }, - { - "assignments": [ - 1894 - ], - "declarations": [ - { - "constant": false, - "id": 1894, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13368:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1893, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1897, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13404:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13385:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "13385:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13385:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13368:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1903, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1900, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13475:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2545, - "src": "13475:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13475:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1905, - "nodeType": "ExpressionStatement", - "src": "13475:33:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1909, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13588:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1910, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1907, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "13575:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "13575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13575:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13612:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1906, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "13567:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13567:68:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1914, - "nodeType": "ExpressionStatement", - "src": "13567:68:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1916, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13702:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13717:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1915, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "13677:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13677:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "EmitStatement", - "src": "13672:52:3" - } - ] - }, - "documentation": "@notice Refund the bond of a deregistered darknode. This will make the\n darknode available for registration again. Anyone can call this function\n but the bond will always be refunded to the darknode owner.\n\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n of this method must be the owner of this darknode.", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1883, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13242:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1884, - "modifierName": { - "argumentTypes": null, - "id": 1882, - "name": "onlyRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "13227:14:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13227:27:3" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1880, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "13197:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13197:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13196:21:3" - }, - "returnParameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [], - "src": "13255:0:3" - }, - "scope": 2390, - "src": "13181:550:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "13982:56:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1930, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1923, - "src": "14019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1928, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13999:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13999:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13999:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 1927, - "id": 1932, - "nodeType": "Return", - "src": "13992:39:3" - } - ] - }, - "documentation": "@notice Retrieves the address of the account that registered a darknode.\n @param _darknodeID The ID of the darknode to retrieve the owner for.", - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13921:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13921:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13920:21:3" - }, - "returnParameters": { - "id": 1927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13965:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13965:15:3", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13964:17:3" - }, - "scope": 2390, - "src": "13895:143:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1946, - "nodeType": "Block", - "src": "14269:55:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1943, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "14305:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14286:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "14286:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14286:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1940, - "id": 1945, - "nodeType": "Return", - "src": "14279:38:3" - } - ] - }, - "documentation": "@notice Retrieves the bond amount of a darknode in 10^-18 REN.\n @param _darknodeID The ID of the darknode to retrieve the bond for.", - "id": 1947, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14216:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14216:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14215:21:3" - }, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14260:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14260:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14259:9:3" - }, - "scope": 2390, - "src": "14191:133:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1959, - "nodeType": "Block", - "src": "14569:60:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1956, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14610:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1954, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodePublicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2681, - "src": "14586:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) view external returns (bytes memory)" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14586:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 1953, - "id": 1958, - "nodeType": "Return", - "src": "14579:43:3" - } - ] - }, - "documentation": "@notice Retrieves the encryption public key of the darknode.\n @param _darknodeID The ID of the darknode to retrieve the public key for.", - "id": 1960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1949, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14511:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14511:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:21:3" - }, - "returnParameters": { - "id": 1953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14555:12:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14554:14:3" - }, - "scope": 2390, - "src": "14481:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1989, - "nodeType": "Block", - "src": "15352:170:3", - "statements": [ - { - "assignments": [ - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1971, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "15362:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15362:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1973, - "initialValue": { - "argumentTypes": null, - "id": 1972, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1964, - "src": "15378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15362:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1974, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15398:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15407:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15398:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1982, - "nodeType": "IfStatement", - "src": "15394:61:3", - "trueBody": { - "id": 1981, - "nodeType": "Block", - "src": "15410:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1978, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "15432:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1980, - "nodeType": "ExpressionStatement", - "src": "15424:20:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1984, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "15494:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1985, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15502:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15509:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1983, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15471:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15471:44:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1969, - "id": 1988, - "nodeType": "Return", - "src": "15464:51:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which are registered for the\n current epoch.\n @param _start A darknode ID used as an offset for the list. If _start is\n 0x0, the first dark node will be used. _start won't be\n included it is not registered for the epoch.\n @param _count The number of darknodes to retrieve starting from _start.\n If _count is 0, all of the darknodes from _start are\n retrieved. If _count is more than the remaining number of\n registered darknodes, the rest of the list will contain\n 0x0s.", - "id": 1990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1962, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15279:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15279:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1964, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15295:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15295:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15278:32:3" - }, - "returnParameters": { - "id": 1969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15334:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15334:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15333:18:3" - }, - "scope": 2390, - "src": "15257:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "15783:182:3", - "statements": [ - { - "assignments": [ - 2001 - ], - "declarations": [ - { - "constant": false, - "id": 2001, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "15793:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15793:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2003, - "initialValue": { - "argumentTypes": null, - "id": 2002, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "15809:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15793:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2004, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15838:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15829:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2012, - "nodeType": "IfStatement", - "src": "15825:74:3", - "trueBody": { - "id": 2011, - "nodeType": "Block", - "src": "15841:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2007, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15855:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2008, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "15863:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15855:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "15855:33:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2014, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "15938:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2015, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15946:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15953:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2013, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15915:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 2017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:43:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1999, - "id": 2018, - "nodeType": "Return", - "src": "15908:50:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which were registered for the\n previous epoch. See `getDarknodes` for the parameter documentation.", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPreviousDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1992, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15710:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15710:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15726:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15726:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15709:32:3" - }, - "returnParameters": { - "id": 1999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15765:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15765:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15765:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15764:18:3" - }, - "scope": 2390, - "src": "15680:285:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "16212:156:3", - "statements": [ - { - "assignments": [ - 2028 - ], - "declarations": [ - { - "constant": false, - "id": 2028, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "16222:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16222:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2033, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2031, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "16272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2029, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16245:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "16245:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16245:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16222:62:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2034, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16301:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16317:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16301:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2038, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16337:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16337:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16322:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16301:60:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2026, - "id": 2042, - "nodeType": "Return", - "src": "16294:67:3" - } - ] - }, - "documentation": "@notice Returns whether a darknode is scheduled to become registered\n at next epoch.\n @param _darknodeID The ID of the darknode to return", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingRegistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16162:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16162:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16161:21:3" - }, - "returnParameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2025, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16206:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16205:6:3" - }, - "scope": 2390, - "src": "16131:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "16598:164:3", - "statements": [ - { - "assignments": [ - 2052 - ], - "declarations": [ - { - "constant": false, - "id": 2052, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2067, - "src": "16608:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16608:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "16662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2053, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16633:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16633:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16633:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16608:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2058, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16691:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16709:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16691:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16714:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2062, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16731:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16731:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16714:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16691:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2050, - "id": 2066, - "nodeType": "Return", - "src": "16684:71:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the pending deregistered state. In\n this state a darknode is still considered registered.", - "id": 2068, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingDeregistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16548:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16548:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16547:21:3" - }, - "returnParameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16592:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2048, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16592:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16591:6:3" - }, - "scope": 2390, - "src": "16515:247:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "16908:165:3", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "16918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2081, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2079, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "16972:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2077, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16943:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16943:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16943:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16918:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2082, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17001:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17019:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17001:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2085, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17024:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "17042:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "17042:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17024:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17001:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2074, - "id": 2090, - "nodeType": "Return", - "src": "16994:72:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the deregistered state.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16860:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16860:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16859:21:3" - }, - "returnParameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2073, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16902:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2072, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16902:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16901:6:3" - }, - "scope": 2390, - "src": "16836:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2114, - "nodeType": "Block", - "src": "17326:304:3", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "17336:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17336:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2103, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17390:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "17361:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17361:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17336:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2107, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17588:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2106, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17575:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2109, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "17604:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17622:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17575:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2098, - "id": 2113, - "nodeType": "Return", - "src": "17568:55:3" - } - ] - }, - "documentation": "@notice Returns if a darknode can be deregistered. This is true if the\n darknodes is in the registered state and has not attempted to\n deregister yet.", - "id": 2115, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregisterable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17278:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17278:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:21:3" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17320:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17320:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17319:6:3" - }, - "scope": 2390, - "src": "17252:378:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2144, - "nodeType": "Block", - "src": "17899:212:3", - "statements": [ - { - "assignments": [ - 2123 - ], - "declarations": [ - { - "constant": false, - "id": 2123, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17909:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "17959:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2124, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17932:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "17932:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17932:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17909:62:3" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17981:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17981:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2133, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "18035:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2131, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18006:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18006:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18006:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17981:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2136, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "18064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18080:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18064:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2139, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "18085:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18085:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18064:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2121, - "id": 2143, - "nodeType": "Return", - "src": "18057:47:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the refunded state. This is true\n for darknodes that have never been registered, or darknodes that have\n been deregistered and refunded.", - "id": 2145, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefunded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2117, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17851:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17851:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17850:21:3" - }, - "returnParameters": { - "id": 2121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2120, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17893:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17893:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17892:6:3" - }, - "scope": 2390, - "src": "17831:280:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2164, - "nodeType": "Block", - "src": "18336:125:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2153, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18368:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2152, - "name": "isDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "18353:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18353:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2157, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18413:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2155, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18384:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18384:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18384:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2159, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18429:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "18429:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18384:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18353:101:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2151, - "id": 2163, - "nodeType": "Return", - "src": "18346:108:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is refundable. This is true for darknodes\n that have been in the deregistered state for one full epoch.", - "id": 2165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefundable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2147, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18288:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18287:21:3" - }, - "returnParameters": { - "id": 2151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2150, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18330:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2149, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18330:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18329:6:3" - }, - "scope": 2390, - "src": "18266:195:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2177, - "nodeType": "Block", - "src": "18603:70:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2173, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2167, - "src": "18640:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2174, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "18653:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2172, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18620:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2171, - "id": 2176, - "nodeType": "Return", - "src": "18613:53:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the registered state.", - "id": 2178, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2167, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18555:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18555:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18554:21:3" - }, - "returnParameters": { - "id": 2171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18597:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18597:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18596:6:3" - }, - "scope": 2390, - "src": "18533:140:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "18842:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "18879:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18892:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2185, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18859:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18859:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2184, - "id": 2189, - "nodeType": "Return", - "src": "18852:54:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state last epoch.", - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInPreviousEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18793:21:3" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18836:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18836:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18835:6:3" - }, - "scope": 2390, - "src": "18757:156:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2240, - "nodeType": "Block", - "src": "19218:509:3", - "statements": [ - { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19228:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19228:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2206, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2204, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19278:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2202, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19251:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "19251:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19251:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19228:62:3" - }, - { - "assignments": [ - 2208 - ], - "declarations": [ - { - "constant": false, - "id": 2208, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19300:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19300:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2213, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19354:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2209, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19325:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "19325:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19300:66:3" - }, - { - "assignments": [ - 2215 - ], - "declarations": [ - { - "constant": false, - "id": 2215, - "name": "registered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19376:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2214, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19376:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2224, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2216, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19410:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19394:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2219, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19415:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2220, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19431:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19431:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19415:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19394:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19376:73:3" - }, - { - "assignments": [ - 2226 - ], - "declarations": [ - { - "constant": false, - "id": 2226, - "name": "notDeregistered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19459:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19459:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2235, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2227, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19482:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19500:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19482:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2230, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19505:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2231, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19522:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19522:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19505:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19482:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19459:81:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2236, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "19691:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2237, - "name": "notDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "19705:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19691:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2199, - "id": 2239, - "nodeType": "Return", - "src": "19684:36:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state for a given\n epoch.\n @param _darknodeID The ID of the darknode\n @param _epoch One of currentEpoch, previousEpoch", - "id": 2241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19148:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19148:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2195, - "name": "_epoch", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19169:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 2194, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "19169:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19147:42:3" - }, - "returnParameters": { - "id": 2199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19212:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19212:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19211:6:3" - }, - "scope": 2390, - "src": "19119:608:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2360, - "nodeType": "Block", - "src": "20170:1037:3", - "statements": [ - { - "assignments": [ - 2254 - ], - "declarations": [ - { - "constant": false, - "id": 2254, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20180:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2256, - "initialValue": { - "argumentTypes": null, - "id": 2255, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "20196:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20180:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2257, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20225:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20216:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2265, - "nodeType": "IfStatement", - "src": "20212:61:3", - "trueBody": { - "id": 2264, - "nodeType": "Block", - "src": "20228:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2260, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2261, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "20250:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20242:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "20242:20:3" - } - ] - } - }, - { - "assignments": [ - 2269 - ], - "declarations": [ - { - "constant": false, - "id": 2269, - "name": "nodes", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20283:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20283:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20283:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2273, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20322:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20308:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 2270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20312:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20312:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20308:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20283:45:3" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20388:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20400:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20388:13:3" - }, - { - "assignments": [ - 2281 - ], - "declarations": [ - { - "constant": false, - "id": 2281, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20411:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2283, - "initialValue": { - "argumentTypes": null, - "id": 2282, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "20426:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20411:21:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2284, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20446:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20462:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20454:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20454:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20446:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2296, - "nodeType": "IfStatement", - "src": "20442:69:3", - "trueBody": { - "id": 2295, - "nodeType": "Block", - "src": "20466:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2289, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20480:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "20487:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2492, - "src": "20487:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20487:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20480:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "20480:20:3" - } - ] - } - }, - { - "body": { - "id": 2356, - "nodeType": "Block", - "src": "20609:570:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2300, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20643:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20635:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20635:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20627:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2307, - "nodeType": "IfStatement", - "src": "20623:62:3", - "trueBody": { - "id": 2306, - "nodeType": "Block", - "src": "20647:38:3", - "statements": [ - { - "id": 2305, - "nodeType": "Break", - "src": "20665:5:3" - } - ] - } - }, - { - "assignments": [ - 2309 - ], - "declarations": [ - { - "constant": false, - "id": 2309, - "name": "includeNext", - "nodeType": "VariableDeclaration", - "scope": 2356, - "src": "20766:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2310, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20766:16:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2311, - "name": "_usePreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2247, - "src": "20800:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2325, - "nodeType": "Block", - "src": "20905:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2319, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20923:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2321, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20950:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2320, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "20937:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20937:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20923:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2324, - "nodeType": "ExpressionStatement", - "src": "20923:32:3" - } - ] - }, - "id": 2326, - "nodeType": "IfStatement", - "src": "20796:174:3", - "trueBody": { - "id": 2318, - "nodeType": "Block", - "src": "20819:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20837:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2314, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2313, - "name": "isRegisteredInPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "20851:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20851:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20837:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "20837:47:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20987:12:3", - "subExpression": { - "argumentTypes": null, - "id": 2327, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20988:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2338, - "nodeType": "IfStatement", - "src": "20983:100:3", - "trueBody": { - "id": 2337, - "nodeType": "Block", - "src": "21001:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2329, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2332, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2330, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21026:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21026:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21026:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21019:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2335, - "nodeType": "ExpressionStatement", - "src": "21019:23:3" - }, - { - "id": 2336, - "nodeType": "Continue", - "src": "21060:8:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2339, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21096:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2341, - "indexExpression": { - "argumentTypes": null, - "id": 2340, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21102:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21096:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2342, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21107:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21096:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2344, - "nodeType": "ExpressionStatement", - "src": "21096:15:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2348, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21143:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2346, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21132:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21132:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21132:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21125:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2351, - "nodeType": "ExpressionStatement", - "src": "21125:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2352, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21162:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21167:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21162:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "21162:6:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2297, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "20598:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2298, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20602:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2357, - "nodeType": "WhileStatement", - "src": "20591:588:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21195:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2252, - "id": 2359, - "nodeType": "Return", - "src": "21188:12:3" - } - ] - }, - "documentation": "@notice Returns a list of darknodes registered for either the current\n or the previous epoch. See `getDarknodes` for documentation on the\n parameters `_start` and `_count`.\n @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n the current epoch.", - "id": 2361, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodesFromEpochs", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2243, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20074:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20074:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20090:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2247, - "name": "_usePreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20106:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20106:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20073:56:3" - }, - "returnParameters": { - "id": 2252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20152:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2250, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20152:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20151:18:3" - }, - "scope": 2390, - "src": "20042:1165:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2388, - "nodeType": "Block", - "src": "21330:303:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2369, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21423:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2373, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "21465:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "21436:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "21436:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "21436:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21436:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2366, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21388:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2606, - "src": "21388:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21388:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "21388:99:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2377, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21497:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21547:1:3", - "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": 2378, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21521:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "21521:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21521:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21497:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "21497:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21614:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2384, - "name": "LogDarknodeDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "21590:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21590:36:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2387, - "nodeType": "EmitStatement", - "src": "21585:41:3" - } - ] - }, - "documentation": "Private function called by `deregister` and `slash`", - "id": 2389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deregisterDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2363, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2389, - "src": "21301:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21301:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21300:21:3" - }, - "returnParameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [], - "src": "21330:0:3" - }, - "scope": 2390, - "src": "21273:360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 2391, - "src": "375:21260:3" - } - ], - "src": "0:21636:3" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "exportedSymbols": { - "DarknodeRegistry": [ - 2390 - ] - }, - "id": 2391, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1289, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:3" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 1290, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7646, - "src": "25:63:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 1291, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 7535, - "src": "89:59:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 1292, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2808, - "src": "150:34:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "file": "../DarknodeSlasher/DarknodeSlasher.sol", - "id": 1293, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2722, - "src": "185:48:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "file": "./DarknodeRegistryStore.sol", - "id": 1294, - "nodeType": "ImportDirective", - "scope": 2391, - "sourceUnit": 2683, - "src": "234:37:3", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1295, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "404:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 1296, - "nodeType": "InheritanceSpecifier", - "src": "404:7:3" - } - ], - "contractDependencies": [ - 7645 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeRegistry is responsible for the registration and\n deregistration of Darknodes.", - "fullyImplemented": true, - "id": 2390, - "linearizedBaseContracts": [ - 2390, - 7645 - ], - "name": "DarknodeRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1299, - "libraryName": { - "contractScope": null, - "id": 1297, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "424:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:3", - "typeName": { - "id": 1298, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 1301, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "451:21:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 1300, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistry.Epoch", - "id": 1306, - "members": [ - { - "constant": false, - "id": 1303, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "767:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1302, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "767:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1305, - "name": "blocknumber", - "nodeType": "VariableDeclaration", - "scope": 1306, - "src": "794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "794:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Epoch", - "nodeType": "StructDefinition", - "scope": 2390, - "src": "744:76:3", - "visibility": "public" - }, - { - "constant": false, - "id": 1308, - "name": "numDarknodes", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "826:27:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1307, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "826:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1310, - "name": "numDarknodesNextEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "859:36:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1309, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "859:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1312, - "name": "numDarknodesPreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "901:40:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1311, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "901:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1314, - "name": "minimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "997:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "997:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1316, - "name": "minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1029:29:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1029:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1318, - "name": "minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1064:35:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1317, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1064:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1320, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1270:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1319, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1270:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1322, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1306:33:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1321, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1306:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1324, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1345:39:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1323, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1345:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1326, - "name": "currentEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1430:25:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1325, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1430:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1328, - "name": "previousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1461:26:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 1327, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "1461:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1330, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1556:19:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1329, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "1556:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1332, - "name": "store", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1653:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1331, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "1653:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1334, - "name": "slasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1762:30:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1333, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1336, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 2390, - "src": "1798:34:3", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1335, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "1798:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is registered.\n @param _darknodeID The darknode ID that was registered.\n @param _bond The amount of REN that was transferred as bond.", - "id": 1342, - "name": "LogDarknodeRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1338, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2055:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1337, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2055:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1340, - "indexed": false, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 1342, - "src": "2084:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2084:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2054:44:3" - }, - "src": "2027:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a darknode is deregistered.\n @param _darknodeID The darknode ID that was deregistered.", - "id": 1346, - "name": "LogDarknodeDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 1345, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "indexed": true, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1346, - "src": "2258:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2258:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2257:29:3" - }, - "src": "2228:59:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a refund has been made.\n @param _owner The address that was refunded.\n @param _amount The amount of REN that was refunded.", - "id": 1352, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 1351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1348, - "indexed": true, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2490:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1347, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2490:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1350, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1352, - "src": "2514:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2489:41:3" - }, - "src": "2459:72:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a new epoch has begun.", - "id": 1356, - "name": "LogNewEpoch", - "nodeType": "EventDefinition", - "parameters": { - "id": 1355, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1354, - "indexed": true, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1356, - "src": "2607:25:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1353, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2607:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2606:27:3" - }, - "src": "2589:45:3" - }, - { - "anonymous": false, - "documentation": "@notice Emitted when a constructor parameter has been updated.", - "id": 1362, - "name": "LogMinimumBondUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1361, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1358, - "indexed": false, - "name": "previousMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2739:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1357, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2739:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1360, - "indexed": false, - "name": "nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1362, - "src": "2768:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2768:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2738:54:3" - }, - "src": "2711:82:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1368, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1364, - "indexed": false, - "name": "previousMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2829:30:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1363, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2829:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1366, - "indexed": false, - "name": "nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1368, - "src": "2861:26:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2861:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2828:60:3" - }, - "src": "2798:91:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1374, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1373, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1370, - "indexed": false, - "name": "previousMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2931:36:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1369, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2931:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1372, - "indexed": false, - "name": "nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1374, - "src": "2969:32:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1371, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2969:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2930:72:3" - }, - "src": "2894:109:3" - }, - { - "anonymous": false, - "documentation": null, - "id": 1380, - "name": "LogSlasherUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 1379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1376, - "indexed": false, - "name": "previousSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3032:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3032:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1378, - "indexed": false, - "name": "nextSlasher", - "nodeType": "VariableDeclaration", - "scope": 1380, - "src": "3057:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3057:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3031:46:3" - }, - "src": "3008:70:3" - }, - { - "body": { - "id": 1396, - "nodeType": "Block", - "src": "3211:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1387, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1382, - "src": "3249:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1385, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "3229:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "3229:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1388, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3229:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1389, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "3265:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1390, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3265:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3229:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206461726b6e6f6465206f776e6572", - "id": 1392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3277:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - }, - "value": "must be darknode owner" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_831f12230b75eb89b16a9643851b495cabcf2cc09c176ca1a6f98ca413f7a341", - "typeString": "literal_string \"must be darknode owner\"" - } - ], - "id": 1384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3221:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3221:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1394, - "nodeType": "ExpressionStatement", - "src": "3221:81:3" - }, - { - "id": 1395, - "nodeType": "PlaceholderStatement", - "src": "3312:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the owner that registered the darknode.", - "id": 1397, - "name": "onlyDarknodeOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1382, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1397, - "src": "3190:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3190:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3189:21:3" - }, - "src": "3163:157:3", - "visibility": "internal" - }, - { - "body": { - "id": 1409, - "nodeType": "Block", - "src": "3432:100:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1403, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1399, - "src": "3461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1402, - "name": "isRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2145, - "src": "3450:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3450:23:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520726566756e646564206f72206e657665722072656769737465726564", - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3475:38:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - }, - "value": "must be refunded or never registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_149ca671aef3cc8634c748e8de5c177049eb721378103c16e11a6afd3213db7b", - "typeString": "literal_string \"must be refunded or never registered\"" - } - ], - "id": 1401, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3442:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3442:72:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1407, - "nodeType": "ExpressionStatement", - "src": "3442:72:3" - }, - { - "id": 1408, - "nodeType": "PlaceholderStatement", - "src": "3524:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to unregistered darknodes.", - "id": 1410, - "name": "onlyRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1399, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1410, - "src": "3411:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3410:21:3" - }, - "src": "3389:143:3", - "visibility": "internal" - }, - { - "body": { - "id": 1422, - "nodeType": "Block", - "src": "3644:109:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1416, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1412, - "src": "3675:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1415, - "name": "isRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2165, - "src": "3662:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3662:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d7573742062652064657265676973746572656420666f72206174206c65617374206f6e652065706f6368", - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3689:45:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - }, - "value": "must be deregistered for at least one epoch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3ad5b476938769c593e29df585d22f106bae979def8bfff763442542e2fb97c7", - "typeString": "literal_string \"must be deregistered for at least one epoch\"" - } - ], - "id": 1414, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3654:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3654:81:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1420, - "nodeType": "ExpressionStatement", - "src": "3654:81:3" - }, - { - "id": 1421, - "nodeType": "PlaceholderStatement", - "src": "3745:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to refundable darknodes.", - "id": 1423, - "name": "onlyRefundable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1412, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1423, - "src": "3623:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1411, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3623:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3622:21:3" - }, - "src": "3599:154:3", - "visibility": "internal" - }, - { - "body": { - "id": 1435, - "nodeType": "Block", - "src": "3906:92:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1429, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1425, - "src": "3941:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1428, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "3924:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3924:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206465726567697374657261626c65", - "id": 1431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3955:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - }, - "value": "must be deregisterable" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ca73111039bd6419843e4c0e5ab9c6f6d6f96c0339a4d266c0ef9fad587b157c", - "typeString": "literal_string \"must be deregisterable\"" - } - ], - "id": 1427, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "3916:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3916:64:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1433, - "nodeType": "ExpressionStatement", - "src": "3916:64:3" - }, - { - "id": 1434, - "nodeType": "PlaceholderStatement", - "src": "3990:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to registered nodes without a pending\n deregistration.", - "id": 1436, - "name": "onlyDeregisterable", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1426, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1425, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1436, - "src": "3885:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1424, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3885:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3884:21:3" - }, - "src": "3857:141:3", - "visibility": "internal" - }, - { - "body": { - "id": 1449, - "nodeType": "Block", - "src": "4088:86:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1444, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1440, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "4114:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1439, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4106:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4106:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1442, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "4126:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4126:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4106:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d75737420626520736c6173686572", - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4138:17:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - }, - "value": "must be slasher" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bc240e18317024af31d37af20ea09ca37fa45f27d1cc2454389fa60d0d22b21a", - "typeString": "literal_string \"must be slasher\"" - } - ], - "id": 1438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4098:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4098:58:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1447, - "nodeType": "ExpressionStatement", - "src": "4098:58:3" - }, - { - "id": 1448, - "nodeType": "PlaceholderStatement", - "src": "4166:1:3" - } - ] - }, - "documentation": "@notice Restrict a function to the Slasher contract.", - "id": 1450, - "name": "onlySlasher", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 1437, - "nodeType": "ParameterList", - "parameters": [], - "src": "4085:2:3" - }, - "src": "4065:109:3", - "visibility": "internal" - }, - { - "body": { - "id": 1528, - "nodeType": "Block", - "src": "4941:613:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1465, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1301, - "src": "4951:7:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1466, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1452, - "src": "4961:8:3", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "4951:18:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 1468, - "nodeType": "ExpressionStatement", - "src": "4951:18:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1469, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "4980:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1470, - "name": "_storeAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1456, - "src": "4988:13:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "src": "4980:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1472, - "nodeType": "ExpressionStatement", - "src": "4980:21:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1473, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5011:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1474, - "name": "_renAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1454, - "src": "5017:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "5011:17:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1476, - "nodeType": "ExpressionStatement", - "src": "5011:17:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1477, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5039:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1478, - "name": "_minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1458, - "src": "5053:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5039:26:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1480, - "nodeType": "ExpressionStatement", - "src": "5039:26:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1481, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "5075:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1482, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "5093:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5075:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1484, - "nodeType": "ExpressionStatement", - "src": "5075:29:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1485, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5115:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1486, - "name": "_minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "5132:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5115:32:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1488, - "nodeType": "ExpressionStatement", - "src": "5115:32:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1489, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "5157:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1490, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "5178:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5157:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1492, - "nodeType": "ExpressionStatement", - "src": "5157:35:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1493, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5203:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1494, - "name": "_minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "5226:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5203:44:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1496, - "nodeType": "ExpressionStatement", - "src": "5203:44:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1497, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "5257:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1498, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "5284:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5257:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1500, - "nodeType": "ExpressionStatement", - "src": "5257:47:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1501, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "5315:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "5379:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5379:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5394:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5379:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1504, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8327, - "src": "5369:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5369:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5361:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5361:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "5424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5424:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1502, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "5330:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "5330:117:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "5315:132:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1515, - "nodeType": "ExpressionStatement", - "src": "5315:132:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1516, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "5457:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1517, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5472:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5457:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "5457:16:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1520, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "5483:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1521, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5507:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5483:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1523, - "nodeType": "ExpressionStatement", - "src": "5483:25:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1524, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "5518:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 1525, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5546:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5518:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1527, - "nodeType": "ExpressionStatement", - "src": "5518:29:3" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _renAddress The address of the RenToken contract.\n @param _storeAddress The address of the DarknodeRegistryStore contract.\n @param _minimumBond The minimum bond amount that can be submitted by a\n Darknode.\n @param _minimumPodSize The minimum size of a Darknode pod.\n @param _minimumEpochInterval The minimum number of blocks between\n epochs.", - "id": 1529, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1463, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1452, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4728:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1451, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "4728:6:3", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1454, - "name": "_renAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4760:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 1453, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "4760:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1456, - "name": "_storeAddress", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4790:35:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - }, - "typeName": { - "contractScope": null, - "id": 1455, - "name": "DarknodeRegistryStore", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2682, - "src": "4790:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1458, - "name": "_minimumBond", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4835:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1457, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4835:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1460, - "name": "_minimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4865:23:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4865:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_minimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1529, - "src": "4898:29:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1461, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4898:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4718:215:3" - }, - "returnParameters": { - "id": 1464, - "nodeType": "ParameterList", - "parameters": [], - "src": "4941:0:3" - }, - "scope": 2390, - "src": "4707:847:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1584, - "nodeType": "Block", - "src": "6349:638:3", - "statements": [ - { - "assignments": [ - 1540 - ], - "declarations": [ - { - "constant": false, - "id": 1540, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 1584, - "src": "6423:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6423:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1542, - "initialValue": { - "argumentTypes": null, - "id": 1541, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "6438:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6423:26:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1546, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "6519:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1547, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6519:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1549, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6539:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - ], - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6531:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6531:14:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1551, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6547:4:3", - "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, - "id": 1544, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6502:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 8178, - "src": "6502:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 1552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6502:50:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6554:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1543, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "6494:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6494:83:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1555, - "nodeType": "ExpressionStatement", - "src": "6494:83:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6669:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1560, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "6694:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6694:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1562, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6718:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1563, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1533, - "src": "6736:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1567, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "6789:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1564, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "6760:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1565, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "6760:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "6760:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6760:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 1569, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6824:1:3", - "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_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 1556, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6635:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "appendDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2479, - "src": "6635:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_payable_$_t_uint256_$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address payable,uint256,bytes memory,uint256,uint256) external" - } - }, - "id": 1570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6635:200:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1571, - "nodeType": "ExpressionStatement", - "src": "6635:200:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1572, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6846:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6896:1:3", - "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": 1573, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "6870:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1574, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "6870:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6870:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6846:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1578, - "nodeType": "ExpressionStatement", - "src": "6846:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1580, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6962:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1581, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1540, - "src": "6975:4:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1579, - "name": "LogDarknodeRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "6940:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6940:40:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1583, - "nodeType": "EmitStatement", - "src": "6935:45:3" - } - ] - }, - "documentation": "@notice Register a darknode and transfer the bond to this contract.\n Before registering, the bond transfer must be approved in the REN\n contract. The caller must provide a public encryption key for the\n darknode. The darknode will remain pending registration until the next\n epoch. Only after this period can the darknode be deregistered. The\n caller of this method will be stored as the owner of the darknode.\n\n /// @param _darknodeID The darknode ID that will be registered.\n @param _publicKey The public key of the darknode. It is stored to allow\n other darknodes and traders to encrypt messages to the trader.", - "id": 1585, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1536, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1531, - "src": "6336:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1537, - "modifierName": { - "argumentTypes": null, - "id": 1535, - "name": "onlyRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1410, - "src": "6323:12:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6323:25:3" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1531, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6266:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1530, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6266:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1533, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 1585, - "src": "6287:25:3", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1532, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6287:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6265:48:3" - }, - "returnParameters": { - "id": 1538, - "nodeType": "ParameterList", - "parameters": [], - "src": "6349:0:3" - }, - "scope": 2390, - "src": "6248:739:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1600, - "nodeType": "Block", - "src": "7505:48:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1597, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7534:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1596, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "7515:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7515:31:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1599, - "nodeType": "ExpressionStatement", - "src": "7515:31:3" - } - ] - }, - "documentation": "@notice Deregister a darknode. The darknode will not be deregistered\n until the end of the epoch. After another epoch, the bond can be\n refunded by calling the refund method.\n @param _darknodeID The darknode ID that will be deregistered. The caller\n of this method store.darknodeRegisteredAt(_darknodeID) must be", - "id": 1601, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1590, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7461:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1591, - "modifierName": { - "argumentTypes": null, - "id": 1589, - "name": "onlyDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "7442:18:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7442:31:3" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 1593, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1587, - "src": "7492:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1594, - "modifierName": { - "argumentTypes": null, - "id": 1592, - "name": "onlyDarknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1397, - "src": "7474:17:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7474:30:3" - } - ], - "name": "deregister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1587, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1601, - "src": "7412:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1586, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7412:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7411:21:3" - }, - "returnParameters": { - "id": 1595, - "nodeType": "ParameterList", - "parameters": [], - "src": "7505:0:3" - }, - "scope": 2390, - "src": "7392:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1726, - "nodeType": "Block", - "src": "7755:1684:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1607, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1604, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "7769:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1605, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "7769:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1606, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7798:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7769:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1618, - "nodeType": "IfStatement", - "src": "7765:199:3", - "trueBody": { - "id": 1617, - "nodeType": "Block", - "src": "7801:163:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1613, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1609, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "7898:3:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7898:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 1611, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7568, - "src": "7912:5:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7912:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7898:21:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420617574686f72697a6564202866697273742065706f63687329", - "id": 1614, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7921:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - }, - "value": "not authorized (first epochs)" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_184185fc4f52082e3f1f3b59d30c9129121ff44ea1c6f83aba8c34d5744370c9", - "typeString": "literal_string \"not authorized (first epochs)\"" - } - ], - "id": 1608, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "7890:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7890:63:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1616, - "nodeType": "ExpressionStatement", - "src": "7890:63:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1620, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8036:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1621, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8036:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1625, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "8081:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1622, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8052:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1623, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "8052:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "8052:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8052:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8036:66:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "65706f636820696e74657276616c20686173206e6f7420706173736564", - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8104:31:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - }, - "value": "epoch interval has not passed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e9d2ed9fe74e3b8f1d51a47e68fbdf2be4c6b276d1bc037bb009b66201d9fd93", - "typeString": "literal_string \"epoch interval has not passed\"" - } - ], - "id": 1619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "8028:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8028:108:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1630, - "nodeType": "ExpressionStatement", - "src": "8028:108:3" - }, - { - "assignments": [ - 1632 - ], - "declarations": [ - { - "constant": false, - "id": 1632, - "name": "epochhash", - "nodeType": "VariableDeclaration", - "scope": 1726, - "src": "8146:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8146:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1641, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1638, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1635, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8184:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8184:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 1637, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8199:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "8184:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1634, - "name": "blockhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8327, - "src": "8174:9:3", - "typeDescriptions": { - "typeIdentifier": "t_function_blockhash_view$_t_uint256_$returns$_t_bytes32_$", - "typeString": "function (uint256) view returns (bytes32)" - } - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8174:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 1633, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8166:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8166:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8146:56:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1642, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "8260:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1643, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8276:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "src": "8260:28:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1645, - "nodeType": "ExpressionStatement", - "src": "8260:28:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1646, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "8298:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1648, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "8344:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1649, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8326, - "src": "8380:5:3", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 1650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "number", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8380:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1647, - "name": "Epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1306, - "src": "8313:5:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Epoch_$1306_storage_ptr_$", - "typeString": "type(struct DarknodeRegistry.Epoch storage pointer)" - } - }, - "id": 1651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "epochhash", - "blocknumber" - ], - "nodeType": "FunctionCall", - "src": "8313:90:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "src": "8298:105:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 1653, - "nodeType": "ExpressionStatement", - "src": "8298:105:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1654, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "8457:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1655, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8485:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8457:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1657, - "nodeType": "ExpressionStatement", - "src": "8457:40:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1658, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "8507:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1659, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "8522:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8507:36:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1661, - "nodeType": "ExpressionStatement", - "src": "8507:36:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1662, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8633:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1663, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8652:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8633:30:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1675, - "nodeType": "IfStatement", - "src": "8629:160:3", - "trueBody": { - "id": 1674, - "nodeType": "Block", - "src": "8665:124:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1665, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8679:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1666, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8693:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8679:29:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1668, - "nodeType": "ExpressionStatement", - "src": "8679:29:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1670, - "name": "minimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1314, - "src": "8749:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1671, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "8762:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1669, - "name": "LogMinimumBondUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1362, - "src": "8727:21:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8727:51:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1673, - "nodeType": "EmitStatement", - "src": "8722:56:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1676, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8802:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1677, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8824:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8802:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1689, - "nodeType": "IfStatement", - "src": "8798:181:3", - "trueBody": { - "id": 1688, - "nodeType": "Block", - "src": "8840:139:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1681, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1679, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8854:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1680, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8871:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8854:35:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1682, - "nodeType": "ExpressionStatement", - "src": "8854:35:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1684, - "name": "minimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1316, - "src": "8933:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1685, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "8949:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1683, - "name": "LogMinimumPodSizeUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1368, - "src": "8908:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8908:60:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1687, - "nodeType": "EmitStatement", - "src": "8903:65:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1690, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "8992:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1691, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9020:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8992:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1703, - "nodeType": "IfStatement", - "src": "8988:223:3", - "trueBody": { - "id": 1702, - "nodeType": "Block", - "src": "9042:169:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1693, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9056:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1694, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9079:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9056:47:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1696, - "nodeType": "ExpressionStatement", - "src": "9056:47:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1698, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "9153:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1699, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "9175:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1697, - "name": "LogMinimumEpochIntervalUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1374, - "src": "9122:30:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 1700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9122:78:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1701, - "nodeType": "EmitStatement", - "src": "9117:83:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1704, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9224:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 1705, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9239:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9224:22:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1721, - "nodeType": "IfStatement", - "src": "9220:150:3", - "trueBody": { - "id": 1720, - "nodeType": "Block", - "src": "9248:122:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1709, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1707, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9262:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1708, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "9262:21:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1710, - "nodeType": "ExpressionStatement", - "src": "9262:21:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1713, - "name": "slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "9328:7:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9320:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9320:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1716, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "9346:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1715, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9338:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9338:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1711, - "name": "LogSlasherUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1380, - "src": "9302:17:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 1718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9302:57:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1719, - "nodeType": "EmitStatement", - "src": "9297:62:3" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1723, - "name": "epochhash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1632, - "src": "9422:9:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1722, - "name": "LogNewEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "9410:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 1724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9410:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1725, - "nodeType": "EmitStatement", - "src": "9405:27:3" - } - ] - }, - "documentation": "@notice Progress the epoch if it is possible to do so. This captures\n the current timestamp and current blockhash and overrides the current\n epoch.", - "id": 1727, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "epoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [], - "src": "7743:2:3" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "7755:0:3" - }, - "scope": 2390, - "src": "7729:1710:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1740, - "nodeType": "Block", - "src": "9697:51:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1737, - "name": "_newOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1729, - "src": "9731:9:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1734, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "9707:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4434, - "src": "9707:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9707:34:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1739, - "nodeType": "ExpressionStatement", - "src": "9707:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to initiate an ownership transfer of\n the DarknodeRegistryStore. \n @param _newOwner The address to transfer the ownership to.", - "id": 1741, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1732, - "modifierName": { - "argumentTypes": null, - "id": 1731, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "9687:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9687:9:3" - } - ], - "name": "transferStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1730, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1729, - "name": "_newOwner", - "nodeType": "VariableDeclaration", - "scope": 1741, - "src": "9659:17:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9659:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9658:19:3" - }, - "returnParameters": { - "id": 1733, - "nodeType": "ParameterList", - "parameters": [], - "src": "9697:0:3" - }, - "scope": 2390, - "src": "9627:121:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1751, - "nodeType": "Block", - "src": "10004:39:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 1746, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "10014:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4455, - "src": "10014:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 1749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10014:22:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1750, - "nodeType": "ExpressionStatement", - "src": "10014:22:3" - } - ] - }, - "documentation": "@notice Claims ownership of the store passed in to the constructor.\n `transferStoreOwnership` must have previously been called when\n transferring from another Darknode Registry.", - "id": 1752, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1744, - "modifierName": { - "argumentTypes": null, - "id": 1743, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "9994:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9994:9:3" - } - ], - "name": "claimStoreOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1742, - "nodeType": "ParameterList", - "parameters": [], - "src": "9982:2:3" - }, - "returnParameters": { - "id": 1745, - "nodeType": "ParameterList", - "parameters": [], - "src": "10004:0:3" - }, - "scope": 2390, - "src": "9954:89:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1763, - "nodeType": "Block", - "src": "10299:89:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1759, - "name": "nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1320, - "src": "10347:15:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1760, - "name": "_nextMinimumBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1754, - "src": "10365:16:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10347:34:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1762, - "nodeType": "ExpressionStatement", - "src": "10347:34:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum bond.\n @param _nextMinimumBond The minimum bond amount that can be submitted by\n a darknode.", - "id": 1764, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1757, - "modifierName": { - "argumentTypes": null, - "id": 1756, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "10289:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10289:9:3" - } - ], - "name": "updateMinimumBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1755, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1754, - "name": "_nextMinimumBond", - "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "10254:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1753, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:26:3" - }, - "returnParameters": { - "id": 1758, - "nodeType": "ParameterList", - "parameters": [], - "src": "10299:0:3" - }, - "scope": 2390, - "src": "10227:161:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1775, - "nodeType": "Block", - "src": "10608:95:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1773, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1771, - "name": "nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1322, - "src": "10656:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1772, - "name": "_nextMinimumPodSize", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "10677:19:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10656:40:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1774, - "nodeType": "ExpressionStatement", - "src": "10656:40:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum pod size.\n @param _nextMinimumPodSize The minimum size of a pod.", - "id": 1776, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1769, - "modifierName": { - "argumentTypes": null, - "id": 1768, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "10598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10598:9:3" - } - ], - "name": "updateMinimumPodSize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1766, - "name": "_nextMinimumPodSize", - "nodeType": "VariableDeclaration", - "scope": 1776, - "src": "10560:27:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1765, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10560:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10559:29:3" - }, - "returnParameters": { - "id": 1770, - "nodeType": "ParameterList", - "parameters": [], - "src": "10608:0:3" - }, - "scope": 2390, - "src": "10530:173:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1787, - "nodeType": "Block", - "src": "10965:107:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1783, - "name": "nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1324, - "src": "11013:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1784, - "name": "_nextMinimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1778, - "src": "11040:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11013:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1786, - "nodeType": "ExpressionStatement", - "src": "11013:52:3" - } - ] - }, - "documentation": "@notice Allows the contract owner to update the minimum epoch interval.\n @param _nextMinimumEpochInterval The minimum number of blocks between epochs.", - "id": 1788, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1781, - "modifierName": { - "argumentTypes": null, - "id": 1780, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "10955:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "10955:9:3" - } - ], - "name": "updateMinimumEpochInterval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1778, - "name": "_nextMinimumEpochInterval", - "nodeType": "VariableDeclaration", - "scope": 1788, - "src": "10911:33:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10911:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10910:35:3" - }, - "returnParameters": { - "id": 1782, - "nodeType": "ParameterList", - "parameters": [], - "src": "10965:0:3" - }, - "scope": 2390, - "src": "10875:197:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1810, - "nodeType": "Block", - "src": "11292:116:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1802, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1797, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11318:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - ], - "id": 1796, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11310:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11310:17:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1800, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11339:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1799, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11331:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11331:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11310:31:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e76616c696420736c61736865722061646472657373", - "id": 1803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11343:25:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - }, - "value": "invalid slasher address" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f8922420b0f4f89ff11f4ee4824db739a4203469f8ee80d0f5d2465001b73d72", - "typeString": "literal_string \"invalid slasher address\"" - } - ], - "id": 1795, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "11302:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11302:67:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1805, - "nodeType": "ExpressionStatement", - "src": "11302:67:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 1808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1806, - "name": "nextSlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1336, - "src": "11379:11:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1807, - "name": "_slasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1790, - "src": "11393:8:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "src": "11379:22:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "id": 1809, - "nodeType": "ExpressionStatement", - "src": "11379:22:3" - } - ] - }, - "documentation": "@notice Allow the contract owner to update the DarknodeSlasher contract\n address.\n @param _slasher The new slasher address.", - "id": 1811, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1793, - "modifierName": { - "argumentTypes": null, - "id": 1792, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "11282:9:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "11282:9:3" - } - ], - "name": "updateSlasher", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1791, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1790, - "name": "_slasher", - "nodeType": "VariableDeclaration", - "scope": 1811, - "src": "11247:24:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - }, - "typeName": { - "contractScope": null, - "id": 1789, - "name": "DarknodeSlasher", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2721, - "src": "11247:15:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeSlasher_$2721", - "typeString": "contract DarknodeSlasher" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11246:26:3" - }, - "returnParameters": { - "id": 1794, - "nodeType": "ParameterList", - "parameters": [], - "src": "11292:0:3" - }, - "scope": 2390, - "src": "11224:184:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1877, - "nodeType": "Block", - "src": "12101:695:3", - "statements": [ - { - "assignments": [ - 1823 - ], - "declarations": [ - { - "constant": false, - "id": 1823, - "name": "penalty", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12111:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1822, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12111:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1830, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1826, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12148:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1824, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12129:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "12129:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12129:27:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 1828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12159:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "12129:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12111:49:3" - }, - { - "assignments": [ - 1832 - ], - "declarations": [ - { - "constant": false, - "id": 1832, - "name": "reward", - "nodeType": "VariableDeclaration", - "scope": 1877, - "src": "12170:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1831, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12170:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1836, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1833, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12187:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "hexValue": "34", - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12197:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4_by_1", - "typeString": "int_const 4" - }, - "value": "4" - }, - "src": "12187:11:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12170:28:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1840, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12289:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1841, - "name": "penalty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1823, - "src": "12298:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1837, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12264:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2589, - "src": "12264:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12264:42:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12264:42:3" - }, - { - "condition": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1845, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12410:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1844, - "name": "isDeregisterable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2115, - "src": "12393:16:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 1846, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12393:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1852, - "nodeType": "IfStatement", - "src": "12389:83:3", - "trueBody": { - "id": 1851, - "nodeType": "Block", - "src": "12420:52:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1848, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12453:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1847, - "name": "deregisterDarknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2389, - "src": "12434:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12434:27:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1850, - "nodeType": "ExpressionStatement", - "src": "12434:27:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1858, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1815, - "src": "12640:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1856, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12620:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12620:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1860, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12655:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1854, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12607:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "12607:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12607:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12664:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1853, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12599:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12599:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1864, - "nodeType": "ExpressionStatement", - "src": "12599:90:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1870, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "12740:12:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1868, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "12720:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "12720:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12720:33:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1872, - "name": "reward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1832, - "src": "12755:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1866, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "12707:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "12707:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12707:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "726577617264207472616e73666572206661696c6564", - "id": 1874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12764:24:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - }, - "value": "reward transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4aeedb0892d13a96469c0158f961ca403ccd0ffa2137bc3be599ab1f3836b5b7", - "typeString": "literal_string \"reward transfer failed\"" - } - ], - "id": 1865, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "12699:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12699:90:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1876, - "nodeType": "ExpressionStatement", - "src": "12699:90:3" - } - ] - }, - "documentation": "@notice Allow the DarknodeSlasher contract to slash half of a darknode's\n bond and deregister it. The bond is distributed as follows:\n 1/2 is kept by the guilty prover\n 1/8 is rewarded to the first challenger\n 1/8 is rewarded to the second challenger\n 1/4 becomes unassigned\n @param _prover The guilty prover whose bond is being slashed\n @param _challenger1 The first of the two darknodes who submitted the challenge\n @param _challenger2 The second of the two darknodes who submitted the challenge", - "id": 1878, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 1820, - "modifierName": { - "argumentTypes": null, - "id": 1819, - "name": "onlySlasher", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1450, - "src": "12085:11:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12085:11:3" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1813, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "11999:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11999:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1815, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12016:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1814, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12016:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1817, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 1878, - "src": "12038:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1816, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12038:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11998:61:3" - }, - "returnParameters": { - "id": 1821, - "nodeType": "ParameterList", - "parameters": [], - "src": "12101:0:3" - }, - "scope": 2390, - "src": "11984:812:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1920, - "nodeType": "Block", - "src": "13255:476:3", - "statements": [ - { - "assignments": [ - 1887 - ], - "declarations": [ - { - "constant": false, - "id": 1887, - "name": "darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13265:21:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1886, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13265:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1892, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1890, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13309:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1888, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13289:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13289:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13289:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13265:56:3" - }, - { - "assignments": [ - 1894 - ], - "declarations": [ - { - "constant": false, - "id": 1894, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 1920, - "src": "13368:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1893, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13368:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1899, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1897, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13404:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1895, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13385:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "13385:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13385:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13368:48:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1903, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13496:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1900, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13475:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "removeDarknode", - "nodeType": "MemberAccess", - "referencedDeclaration": 2545, - "src": "13475:20:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 1904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13475:33:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1905, - "nodeType": "ExpressionStatement", - "src": "13475:33:3" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1909, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13588:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1910, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13603:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1907, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "13575:3:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 1908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "13575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 1911, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13575:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 1912, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13612:22:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 1906, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "13567:7:3", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 1913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13567:68:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1914, - "nodeType": "ExpressionStatement", - "src": "13567:68:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1916, - "name": "darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1887, - "src": "13702:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1917, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1894, - "src": "13717:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 1915, - "name": "LogDarknodeOwnerRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "13677:24:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13677:47:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "EmitStatement", - "src": "13672:52:3" - } - ] - }, - "documentation": "@notice Refund the bond of a deregistered darknode. This will make the\n darknode available for registration again. Anyone can call this function\n but the bond will always be refunded to the darknode owner.\n\n /// @param _darknodeID The darknode ID that will be refunded. The caller\n of this method must be the owner of this darknode.", - "id": 1921, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 1883, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1880, - "src": "13242:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 1884, - "modifierName": { - "argumentTypes": null, - "id": 1882, - "name": "onlyRefundable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1423, - "src": "13227:14:3", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13227:27:3" - } - ], - "name": "refund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1881, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1880, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "13197:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13197:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13196:21:3" - }, - "returnParameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [], - "src": "13255:0:3" - }, - "scope": 2390, - "src": "13181:550:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1933, - "nodeType": "Block", - "src": "13982:56:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1930, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1923, - "src": "14019:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1928, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "13999:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeOwner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2621, - "src": "13999:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_payable_$", - "typeString": "function (address) view external returns (address payable)" - } - }, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13999:32:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 1927, - "id": 1932, - "nodeType": "Return", - "src": "13992:39:3" - } - ] - }, - "documentation": "@notice Retrieves the address of the account that registered a darknode.\n @param _darknodeID The ID of the darknode to retrieve the owner for.", - "id": 1934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1924, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1923, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13921:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1922, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13921:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13920:21:3" - }, - "returnParameters": { - "id": 1927, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1926, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1934, - "src": "13965:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1925, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13965:15:3", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13964:17:3" - }, - "scope": 2390, - "src": "13895:143:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1946, - "nodeType": "Block", - "src": "14269:55:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1943, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1936, - "src": "14305:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1941, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14286:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeBond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2636, - "src": "14286:18:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 1944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14286:31:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1940, - "id": 1945, - "nodeType": "Return", - "src": "14279:38:3" - } - ] - }, - "documentation": "@notice Retrieves the bond amount of a darknode in 10^-18 REN.\n @param _darknodeID The ID of the darknode to retrieve the bond for.", - "id": 1947, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1936, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14216:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14216:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14215:21:3" - }, - "returnParameters": { - "id": 1940, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1939, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1947, - "src": "14260:7:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1938, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14260:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14259:9:3" - }, - "scope": 2390, - "src": "14191:133:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1959, - "nodeType": "Block", - "src": "14569:60:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1956, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14610:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 1954, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "14586:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 1955, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodePublicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2681, - "src": "14586:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bytes_memory_ptr_$", - "typeString": "function (address) view external returns (bytes memory)" - } - }, - "id": 1957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14586:36:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "functionReturnParameters": 1953, - "id": 1958, - "nodeType": "Return", - "src": "14579:43:3" - } - ] - }, - "documentation": "@notice Retrieves the encryption public key of the darknode.\n @param _darknodeID The ID of the darknode to retrieve the public key for.", - "id": 1960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1950, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1949, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14511:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1948, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14511:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14510:21:3" - }, - "returnParameters": { - "id": 1953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1952, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1960, - "src": "14555:12:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14555:5:3", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14554:14:3" - }, - "scope": 2390, - "src": "14481:148:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 1989, - "nodeType": "Block", - "src": "15352:170:3", - "statements": [ - { - "assignments": [ - 1971 - ], - "declarations": [ - { - "constant": false, - "id": 1971, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 1989, - "src": "15362:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1970, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15362:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1973, - "initialValue": { - "argumentTypes": null, - "id": 1972, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1964, - "src": "15378:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15362:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1974, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15398:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1975, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15407:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15398:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 1982, - "nodeType": "IfStatement", - "src": "15394:61:3", - "trueBody": { - "id": 1981, - "nodeType": "Block", - "src": "15410:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1977, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15424:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 1978, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "15432:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15424:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1980, - "nodeType": "ExpressionStatement", - "src": "15424:20:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1984, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "15494:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1985, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1971, - "src": "15502:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 1986, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15509:5:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1983, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15471:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 1987, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15471:44:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1969, - "id": 1988, - "nodeType": "Return", - "src": "15464:51:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which are registered for the\n current epoch.\n @param _start A darknode ID used as an offset for the list. If _start is\n 0x0, the first dark node will be used. _start won't be\n included it is not registered for the epoch.\n @param _count The number of darknodes to retrieve starting from _start.\n If _count is 0, all of the darknodes from _start are\n retrieved. If _count is more than the remaining number of\n registered darknodes, the rest of the list will contain\n 0x0s.", - "id": 1990, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1962, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15279:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1961, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15279:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1964, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15295:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15295:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15278:32:3" - }, - "returnParameters": { - "id": 1969, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1968, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1990, - "src": "15334:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1966, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15334:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1967, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15334:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15333:18:3" - }, - "scope": 2390, - "src": "15257:265:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2019, - "nodeType": "Block", - "src": "15783:182:3", - "statements": [ - { - "assignments": [ - 2001 - ], - "declarations": [ - { - "constant": false, - "id": 2001, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2019, - "src": "15793:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2000, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15793:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2003, - "initialValue": { - "argumentTypes": null, - "id": 2002, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1994, - "src": "15809:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15793:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2004, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15829:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15838:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15829:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2012, - "nodeType": "IfStatement", - "src": "15825:74:3", - "trueBody": { - "id": 2011, - "nodeType": "Block", - "src": "15841:58:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2007, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15855:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2008, - "name": "numDarknodesPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1312, - "src": "15863:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15855:33:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2010, - "nodeType": "ExpressionStatement", - "src": "15855:33:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2014, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1992, - "src": "15938:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2015, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "15946:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2016, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15953:4:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2013, - "name": "getDarknodesFromEpochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "15915:22:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$_t_bool_$returns$_t_array$_t_address_$dyn_memory_ptr_$", - "typeString": "function (address,uint256,bool) view returns (address[] memory)" - } - }, - "id": 2017, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15915:43:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 1999, - "id": 2018, - "nodeType": "Return", - "src": "15908:50:3" - } - ] - }, - "documentation": "@notice Retrieves a list of darknodes which were registered for the\n previous epoch. See `getDarknodes` for the parameter documentation.", - "id": 2020, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getPreviousDarknodes", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1992, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15710:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1991, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15710:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1994, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15726:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1993, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15726:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15709:32:3" - }, - "returnParameters": { - "id": 1999, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1998, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2020, - "src": "15765:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1996, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15765:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1997, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15765:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15764:18:3" - }, - "scope": 2390, - "src": "15680:285:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2043, - "nodeType": "Block", - "src": "16212:156:3", - "statements": [ - { - "assignments": [ - 2028 - ], - "declarations": [ - { - "constant": false, - "id": 2028, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2043, - "src": "16222:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2027, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16222:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2033, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2031, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "16272:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2029, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16245:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2030, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "16245:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16245:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16222:62:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2036, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2034, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16301:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2035, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16317:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16301:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2040, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2037, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "16322:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2038, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16337:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16337:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16322:39:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16301:60:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2026, - "id": 2042, - "nodeType": "Return", - "src": "16294:67:3" - } - ] - }, - "documentation": "@notice Returns whether a darknode is scheduled to become registered\n at next epoch.\n @param _darknodeID The ID of the darknode to return", - "id": 2044, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingRegistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2022, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16162:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16162:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16161:21:3" - }, - "returnParameters": { - "id": 2026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2025, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2044, - "src": "16206:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16206:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16205:6:3" - }, - "scope": 2390, - "src": "16131:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2067, - "nodeType": "Block", - "src": "16598:164:3", - "statements": [ - { - "assignments": [ - 2052 - ], - "declarations": [ - { - "constant": false, - "id": 2052, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2067, - "src": "16608:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2051, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16608:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2055, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2046, - "src": "16662:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2053, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16633:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16633:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16633:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16608:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2058, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16691:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16709:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "16691:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2064, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2061, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "16714:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2062, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "16731:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "16731:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16714:41:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16691:64:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2050, - "id": 2066, - "nodeType": "Return", - "src": "16684:71:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the pending deregistered state. In\n this state a darknode is still considered registered.", - "id": 2068, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isPendingDeregistration", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2047, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2046, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16548:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16548:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16547:21:3" - }, - "returnParameters": { - "id": 2050, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2049, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2068, - "src": "16592:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2048, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16592:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16591:6:3" - }, - "scope": 2390, - "src": "16515:247:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2091, - "nodeType": "Block", - "src": "16908:165:3", - "statements": [ - { - "assignments": [ - 2076 - ], - "declarations": [ - { - "constant": false, - "id": 2076, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "16918:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2075, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16918:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2081, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2079, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2070, - "src": "16972:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2077, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "16943:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "16943:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16943:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16918:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2082, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17001:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17019:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17001:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2085, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2076, - "src": "17024:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "17042:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2087, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "17042:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17024:42:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17001:65:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2074, - "id": 2090, - "nodeType": "Return", - "src": "16994:72:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the deregistered state.", - "id": 2092, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2071, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2070, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16860:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16860:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16859:21:3" - }, - "returnParameters": { - "id": 2074, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2073, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2092, - "src": "16902:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2072, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "16902:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16901:6:3" - }, - "scope": 2390, - "src": "16836:237:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2114, - "nodeType": "Block", - "src": "17326:304:3", - "statements": [ - { - "assignments": [ - 2100 - ], - "declarations": [ - { - "constant": false, - "id": 2100, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2114, - "src": "17336:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2099, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17336:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2105, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2103, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17390:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2101, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17361:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "17361:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2104, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17361:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17336:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2112, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2107, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2094, - "src": "17588:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2106, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17575:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17575:25:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2109, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2100, - "src": "17604:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17622:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "17604:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "17575:48:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2098, - "id": 2113, - "nodeType": "Return", - "src": "17568:55:3" - } - ] - }, - "documentation": "@notice Returns if a darknode can be deregistered. This is true if the\n darknodes is in the registered state and has not attempted to\n deregister yet.", - "id": 2115, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isDeregisterable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2095, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2094, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17278:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17278:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17277:21:3" - }, - "returnParameters": { - "id": 2098, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2097, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2115, - "src": "17320:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2096, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17320:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17319:6:3" - }, - "scope": 2390, - "src": "17252:378:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2144, - "nodeType": "Block", - "src": "17899:212:3", - "statements": [ - { - "assignments": [ - 2123 - ], - "declarations": [ - { - "constant": false, - "id": 2123, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17909:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2122, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17909:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2126, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "17959:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2124, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "17932:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "17932:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17932:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17909:62:3" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2144, - "src": "17981:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17981:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2133, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2117, - "src": "18035:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2131, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18006:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18006:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18006:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17981:66:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2136, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2123, - "src": "18064:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18080:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18064:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2139, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "18085:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18103:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18085:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18064:40:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2121, - "id": 2143, - "nodeType": "Return", - "src": "18057:47:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the refunded state. This is true\n for darknodes that have never been registered, or darknodes that have\n been deregistered and refunded.", - "id": 2145, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefunded", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2118, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2117, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17851:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2116, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17851:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17850:21:3" - }, - "returnParameters": { - "id": 2121, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2120, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2145, - "src": "17893:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2119, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17893:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17892:6:3" - }, - "scope": 2390, - "src": "17831:280:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2164, - "nodeType": "Block", - "src": "18336:125:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2153, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18368:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2152, - "name": "isDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2092, - "src": "18353:14:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18353:27:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2157, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2147, - "src": "18413:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2155, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "18384:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "18384:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2158, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18384:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2159, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18429:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "18429:25:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18384:70:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "18353:101:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2151, - "id": 2163, - "nodeType": "Return", - "src": "18346:108:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is refundable. This is true for darknodes\n that have been in the deregistered state for one full epoch.", - "id": 2165, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRefundable", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2148, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2147, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18288:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18288:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18287:21:3" - }, - "returnParameters": { - "id": 2151, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2150, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2165, - "src": "18330:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2149, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18330:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18329:6:3" - }, - "scope": 2390, - "src": "18266:195:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2177, - "nodeType": "Block", - "src": "18603:70:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2173, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2167, - "src": "18640:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2174, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "18653:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2172, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18620:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18620:46:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2171, - "id": 2176, - "nodeType": "Return", - "src": "18613:53:3" - } - ] - }, - "documentation": "@notice Returns if a darknode is in the registered state.", - "id": 2178, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegistered", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2168, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2167, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18555:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2166, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18555:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18554:21:3" - }, - "returnParameters": { - "id": 2171, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "18597:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18597:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18596:6:3" - }, - "scope": 2390, - "src": "18533:140:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2190, - "nodeType": "Block", - "src": "18842:71:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2186, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "18879:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2187, - "name": "previousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "18892:13:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - ], - "id": 2185, - "name": "isRegisteredInEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18859:19:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_struct$_Epoch_$1306_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,struct DarknodeRegistry.Epoch memory) view returns (bool)" - } - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18859:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2184, - "id": 2189, - "nodeType": "Return", - "src": "18852:54:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state last epoch.", - "id": 2191, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInPreviousEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2181, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2180, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18794:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2179, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18794:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18793:21:3" - }, - "returnParameters": { - "id": 2184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2183, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2191, - "src": "18836:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2182, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18836:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18835:6:3" - }, - "scope": 2390, - "src": "18757:156:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2240, - "nodeType": "Block", - "src": "19218:509:3", - "statements": [ - { - "assignments": [ - 2201 - ], - "declarations": [ - { - "constant": false, - "id": 2201, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19228:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19228:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2206, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2204, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19278:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2202, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19251:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeRegisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2651, - "src": "19251:26:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19251:39:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19228:62:3" - }, - { - "assignments": [ - 2208 - ], - "declarations": [ - { - "constant": false, - "id": 2208, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19300:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19300:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2213, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2211, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2193, - "src": "19354:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2209, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "19325:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "darknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2666, - "src": "19325:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 2212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19325:41:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19300:66:3" - }, - { - "assignments": [ - 2215 - ], - "declarations": [ - { - "constant": false, - "id": 2215, - "name": "registered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19376:15:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2214, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19376:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2224, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2216, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19394:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19410:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19394:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2219, - "name": "registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2201, - "src": "19415:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2220, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19431:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2221, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19431:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19415:34:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19394:55:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19376:73:3" - }, - { - "assignments": [ - 2226 - ], - "declarations": [ - { - "constant": false, - "id": 2226, - "name": "notDeregistered", - "nodeType": "VariableDeclaration", - "scope": 2240, - "src": "19459:20:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2225, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19459:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2235, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2234, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2229, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2227, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19482:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2228, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19500:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "19482:19:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2230, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2208, - "src": "19505:14:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2231, - "name": "_epoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2195, - "src": "19522:6:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch memory" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "19522:18:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19505:35:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19482:58:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19459:81:3" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2236, - "name": "registered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "19691:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "id": 2237, - "name": "notDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2226, - "src": "19705:15:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "19691:29:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 2199, - "id": 2239, - "nodeType": "Return", - "src": "19684:36:3" - } - ] - }, - "documentation": "@notice Returns if a darknode was in the registered state for a given\n epoch.\n @param _darknodeID The ID of the darknode\n @param _epoch One of currentEpoch, previousEpoch", - "id": 2241, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegisteredInEpoch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2196, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2193, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19148:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2192, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19148:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2195, - "name": "_epoch", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19169:19:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_memory_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - }, - "typeName": { - "contractScope": null, - "id": 2194, - "name": "Epoch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1306, - "src": "19169:5:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage_ptr", - "typeString": "struct DarknodeRegistry.Epoch" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19147:42:3" - }, - "returnParameters": { - "id": 2199, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2198, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2241, - "src": "19212:4:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2197, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "19212:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19211:6:3" - }, - "scope": 2390, - "src": "19119:608:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2360, - "nodeType": "Block", - "src": "20170:1037:3", - "statements": [ - { - "assignments": [ - 2254 - ], - "declarations": [ - { - "constant": false, - "id": 2254, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20180:13:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20180:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2256, - "initialValue": { - "argumentTypes": null, - "id": 2255, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "20196:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20180:22:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2257, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20216:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2258, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20225:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "20216:10:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2265, - "nodeType": "IfStatement", - "src": "20212:61:3", - "trueBody": { - "id": 2264, - "nodeType": "Block", - "src": "20228:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2260, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20242:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2261, - "name": "numDarknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1308, - "src": "20250:12:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20242:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2263, - "nodeType": "ExpressionStatement", - "src": "20242:20:3" - } - ] - } - }, - { - "assignments": [ - 2269 - ], - "declarations": [ - { - "constant": false, - "id": 2269, - "name": "nodes", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20283:22:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2267, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20283:7:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2268, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20283:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2275, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2273, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20322:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "20308:13:3", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 2270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20312:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2271, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20312:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20308:20:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20283:45:3" - }, - { - "assignments": [ - 2277 - ], - "declarations": [ - { - "constant": false, - "id": 2277, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20388:9:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2276, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20388:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2279, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 2278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20400:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "20388:13:3" - }, - { - "assignments": [ - 2281 - ], - "declarations": [ - { - "constant": false, - "id": 2281, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 2360, - "src": "20411:12:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20411:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2283, - "initialValue": { - "argumentTypes": null, - "id": 2282, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "20426:6:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20411:21:3" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2284, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20446:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2286, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20462:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20454:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2287, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20454:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20446:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2296, - "nodeType": "IfStatement", - "src": "20442:69:3", - "trueBody": { - "id": 2295, - "nodeType": "Block", - "src": "20466:45:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2289, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20480:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2290, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "20487:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 2492, - "src": "20487:11:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_address_$", - "typeString": "function () view external returns (address)" - } - }, - "id": 2292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20487:13:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20480:20:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2294, - "nodeType": "ExpressionStatement", - "src": "20480:20:3" - } - ] - } - }, - { - "body": { - "id": 2356, - "nodeType": "Block", - "src": "20609:570:3", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2300, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20627:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20643:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20635:7:3", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20635:10:3", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20627:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2307, - "nodeType": "IfStatement", - "src": "20623:62:3", - "trueBody": { - "id": 2306, - "nodeType": "Block", - "src": "20647:38:3", - "statements": [ - { - "id": 2305, - "nodeType": "Break", - "src": "20665:5:3" - } - ] - } - }, - { - "assignments": [ - 2309 - ], - "declarations": [ - { - "constant": false, - "id": 2309, - "name": "includeNext", - "nodeType": "VariableDeclaration", - "scope": 2356, - "src": "20766:16:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2308, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20766:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2310, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "20766:16:3" - }, - { - "condition": { - "argumentTypes": null, - "id": 2311, - "name": "_usePreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2247, - "src": "20800:17:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2325, - "nodeType": "Block", - "src": "20905:65:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2319, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20923:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2321, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20950:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2320, - "name": "isRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "20937:12:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20937:18:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20923:32:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2324, - "nodeType": "ExpressionStatement", - "src": "20923:32:3" - } - ] - }, - "id": 2326, - "nodeType": "IfStatement", - "src": "20796:174:3", - "trueBody": { - "id": 2318, - "nodeType": "Block", - "src": "20819:80:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2312, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20837:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2314, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "20879:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2313, - "name": "isRegisteredInPreviousEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2191, - "src": "20851:27:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 2315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20851:33:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "20837:47:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2317, - "nodeType": "ExpressionStatement", - "src": "20837:47:3" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 2328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20987:12:3", - "subExpression": { - "argumentTypes": null, - "id": 2327, - "name": "includeNext", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2309, - "src": "20988:11:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2338, - "nodeType": "IfStatement", - "src": "20983:100:3", - "trueBody": { - "id": 2337, - "nodeType": "Block", - "src": "21001:82:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2334, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2329, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21019:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2332, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21037:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2330, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21026:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21026:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21026:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21019:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2335, - "nodeType": "ExpressionStatement", - "src": "21019:23:3" - }, - { - "id": 2336, - "nodeType": "Continue", - "src": "21060:8:3" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2339, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21096:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2341, - "indexExpression": { - "argumentTypes": null, - "id": 2340, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21102:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21096:8:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2342, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21107:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21096:15:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2344, - "nodeType": "ExpressionStatement", - "src": "21096:15:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2345, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21125:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2348, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2281, - "src": "21143:4:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2346, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21132:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 2508, - "src": "21132:10:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_address_$", - "typeString": "function (address) view external returns (address)" - } - }, - "id": 2349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21132:16:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "21125:23:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2351, - "nodeType": "ExpressionStatement", - "src": "21125:23:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2352, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "21162:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21167:1:3", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "21162:6:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2355, - "nodeType": "ExpressionStatement", - "src": "21162:6:3" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2297, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2277, - "src": "20598:1:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2298, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "20602:5:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20598:9:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2357, - "nodeType": "WhileStatement", - "src": "20591:588:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "name": "nodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2269, - "src": "21195:5:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 2252, - "id": 2359, - "nodeType": "Return", - "src": "21188:12:3" - } - ] - }, - "documentation": "@notice Returns a list of darknodes registered for either the current\n or the previous epoch. See `getDarknodes` for documentation on the\n parameters `_start` and `_count`.\n @param _usePreviousEpoch If true, use the previous epoch, otherwise use\n the current epoch.", - "id": 2361, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDarknodesFromEpochs", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2243, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20074:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2242, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20074:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20090:14:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20090:7:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2247, - "name": "_usePreviousEpoch", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20106:22:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2246, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "20106:4:3", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20073:56:3" - }, - "returnParameters": { - "id": 2252, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2251, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2361, - "src": "20152:16:3", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20152:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2250, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20152:9:3", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20151:18:3" - }, - "scope": 2390, - "src": "20042:1165:3", - "stateMutability": "view", - "superFunction": null, - "visibility": "private" - }, - { - "body": { - "id": 2388, - "nodeType": "Block", - "src": "21330:303:3", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2369, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21423:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2373, - "name": "minimumEpochInterval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1318, - "src": "21465:20:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2370, - "name": "currentEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1326, - "src": "21436:12:3", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Epoch_$1306_storage", - "typeString": "struct DarknodeRegistry.Epoch storage ref" - } - }, - "id": 2371, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blocknumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 1305, - "src": "21436:24:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 7428, - "src": "21436:28:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21436:50:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2366, - "name": "store", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "21388:5:3", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistryStore_$2682", - "typeString": "contract DarknodeRegistryStore" - } - }, - "id": 2368, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateDarknodeDeregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2606, - "src": "21388:34:3", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 2375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21388:99:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2376, - "nodeType": "ExpressionStatement", - "src": "21388:99:3" - }, - { - "expression": { - "argumentTypes": null, - "id": 2382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2377, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21497:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21547:1:3", - "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": 2378, - "name": "numDarknodesNextEpoch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1310, - "src": "21521:21:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "21521:25:3", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21521:28:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21497:52:3", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2383, - "nodeType": "ExpressionStatement", - "src": "21497:52:3" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2385, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "21614:11:3", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2384, - "name": "LogDarknodeDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "21590:23:3", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21590:36:3", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2387, - "nodeType": "EmitStatement", - "src": "21585:41:3" - } - ] - }, - "documentation": "Private function called by `deregister` and `slash`", - "id": 2389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "deregisterDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2364, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2363, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2389, - "src": "21301:19:3", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2362, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21301:7:3", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21300:21:3" - }, - "returnParameters": { - "id": 2365, - "nodeType": "ParameterList", - "parameters": [], - "src": "21330:0:3" - }, - "scope": 2390, - "src": "21273:360:3", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "private" - } - ], - "scope": 2391, - "src": "375:21260:3" - } - ], - "src": "0:21636:3" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -29641,183 +883,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T03:42:13.910Z", - "devdoc": { - "methods": { - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_minimumBond": "The minimum bond amount that can be submitted by a Darknode.", - "_minimumEpochInterval": "The minimum number of blocks between epochs.", - "_minimumPodSize": "The minimum size of a Darknode pod.", - "_renAddress": "The address of the RenToken contract.", - "_storeAddress": "The address of the DarknodeRegistryStore contract." - } - }, - "deregister(address)": { - "params": { - "_darknodeID": "The darknode ID that will be deregistered. The caller of this method store.darknodeRegisteredAt(_darknodeID) must be" - } - }, - "getDarknodeBond(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the bond for." - } - }, - "getDarknodeOwner(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the owner for." - } - }, - "getDarknodePublicKey(address)": { - "params": { - "_darknodeID": "The ID of the darknode to retrieve the public key for." - } - }, - "getDarknodes(address,uint256)": { - "params": { - "_count": "The number of darknodes to retrieve starting from _start. If _count is 0, all of the darknodes from _start are retrieved. If _count is more than the remaining number of registered darknodes, the rest of the list will contain 0x0s.", - "_start": "A darknode ID used as an offset for the list. If _start is 0x0, the first dark node will be used. _start won't be included it is not registered for the epoch." - } - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "isPendingRegistration(address)": { - "params": { - "_darknodeID": "The ID of the darknode to return" - } - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "refund(address)": { - "params": { - "_darknodeID": "The darknode ID that will be refunded. The caller of this method must be the owner of this darknode." - } - }, - "register(address,bytes)": { - "params": { - "_darknodeID": "The darknode ID that will be registered.", - "_publicKey": "The public key of the darknode. It is stored to allow other darknodes and traders to encrypt messages to the trader." - } - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "slash(address,address,address)": { - "params": { - "_challenger1": "The first of the two darknodes who submitted the challenge", - "_challenger2": "The second of the two darknodes who submitted the challenge", - "_prover": "The guilty prover whose bond is being slashed" - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "transferStoreOwnership(address)": { - "params": { - "_newOwner": "The address to transfer the ownership to." - } - }, - "updateMinimumBond(uint256)": { - "params": { - "_nextMinimumBond": "The minimum bond amount that can be submitted by a darknode." - } - }, - "updateMinimumEpochInterval(uint256)": { - "params": { - "_nextMinimumEpochInterval": "The minimum number of blocks between epochs." - } - }, - "updateMinimumPodSize(uint256)": { - "params": { - "_nextMinimumPodSize": "The minimum size of a pod." - } - }, - "updateSlasher(address)": { - "params": { - "_slasher": "The new slasher address." - } - } - } - }, - "userdoc": { - "methods": { - "claimStoreOwnership()": { - "notice": "Claims ownership of the store passed in to the constructor. `transferStoreOwnership` must have previously been called when transferring from another Darknode Registry." - }, - "constructor": "The contract constructor. ", - "deregister(address)": { - "notice": "Deregister a darknode. The darknode will not be deregistered until the end of the epoch. After another epoch, the bond can be refunded by calling the refund method." - }, - "epoch()": { - "notice": "Progress the epoch if it is possible to do so. This captures the current timestamp and current blockhash and overrides the current epoch." - }, - "getDarknodeBond(address)": { - "notice": "Retrieves the bond amount of a darknode in 10^-18 REN." - }, - "getDarknodeOwner(address)": { - "notice": "Retrieves the address of the account that registered a darknode." - }, - "getDarknodePublicKey(address)": { - "notice": "Retrieves the encryption public key of the darknode." - }, - "getDarknodes(address,uint256)": { - "notice": "Retrieves a list of darknodes which are registered for the current epoch." - }, - "getPreviousDarknodes(address,uint256)": { - "notice": "Retrieves a list of darknodes which were registered for the previous epoch. See `getDarknodes` for the parameter documentation." - }, - "isDeregisterable(address)": { - "notice": "Returns if a darknode can be deregistered. This is true if the darknodes is in the registered state and has not attempted to deregister yet." - }, - "isDeregistered(address)": { - "notice": "Returns if a darknode is in the deregistered state." - }, - "isPendingDeregistration(address)": { - "notice": "Returns if a darknode is in the pending deregistered state. In this state a darknode is still considered registered." - }, - "isPendingRegistration(address)": { - "notice": "Returns whether a darknode is scheduled to become registered at next epoch." - }, - "isRefundable(address)": { - "notice": "Returns if a darknode is refundable. This is true for darknodes that have been in the deregistered state for one full epoch." - }, - "isRefunded(address)": { - "notice": "Returns if a darknode is in the refunded state. This is true for darknodes that have never been registered, or darknodes that have been deregistered and refunded." - }, - "isRegistered(address)": { - "notice": "Returns if a darknode is in the registered state." - }, - "isRegisteredInPreviousEpoch(address)": { - "notice": "Returns if a darknode was in the registered state last epoch." - }, - "refund(address)": { - "notice": "Refund the bond of a deregistered darknode. This will make the darknode available for registration again. Anyone can call this function but the bond will always be refunded to the darknode owner. " - }, - "register(address,bytes)": { - "notice": "Register a darknode and transfer the bond to this contract. Before registering, the bond transfer must be approved in the REN contract. The caller must provide a public encryption key for the darknode. The darknode will remain pending registration until the next epoch. Only after this period can the darknode be deregistered. The caller of this method will be stored as the owner of the darknode. " - }, - "slash(address,address,address)": { - "notice": "Allow the DarknodeSlasher contract to slash half of a darknode's bond and deregister it. The bond is distributed as follows: 1/2 is kept by the guilty prover 1/8 is rewarded to the first challenger 1/8 is rewarded to the second challenger 1/4 becomes unassigned" - }, - "transferStoreOwnership(address)": { - "notice": "Allows the contract owner to initiate an ownership transfer of the DarknodeRegistryStore. " - }, - "updateMinimumBond(uint256)": { - "notice": "Allows the contract owner to update the minimum bond." - }, - "updateMinimumEpochInterval(uint256)": { - "notice": "Allows the contract owner to update the minimum epoch interval." - }, - "updateMinimumPodSize(uint256)": { - "notice": "Allows the contract owner to update the minimum pod size." - }, - "updateSlasher(address)": { - "notice": "Allow the contract owner to update the DarknodeSlasher contract address." - } - }, - "notice": "DarknodeRegistry is responsible for the registration and deregistration of Darknodes." - } + "updatedAt": "2019-06-26T03:42:13.910Z" } \ No newline at end of file diff --git a/build/testnet/DarknodeRegistryStore.json b/build/testnet/DarknodeRegistryStore.json index f3b933a3..c1730b9f 100644 --- a/build/testnet/DarknodeRegistryStore.json +++ b/build/testnet/DarknodeRegistryStore.json @@ -334,7245 +334,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeDeregisteredAt\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"begin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"},{\"name\":\"deregisteredAt\",\"type\":\"uint256\"}],\"name\":\"updateDarknodeDeregisteredAt\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"removeDarknode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"ren\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_darknodeID\",\"type\":\"address\"},{\"name\":\"_darknodeOwner\",\"type\":\"address\"},{\"name\":\"_bond\",\"type\":\"uint256\"},{\"name\":\"_publicKey\",\"type\":\"bytes\"},{\"name\":\"_registeredAt\",\"type\":\"uint256\"},{\"name\":\"_deregisteredAt\",\"type\":\"uint256\"}],\"name\":\"appendDarknode\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"next\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeBond\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodeRegisteredAt\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"}],\"name\":\"darknodePublicKey\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"darknodeID\",\"type\":\"address\"},{\"name\":\"decreasedBond\",\"type\":\"uint256\"}],\"name\":\"updateDarknodeBond\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_VERSION\",\"type\":\"string\"},{\"name\":\"_ren\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"appendDarknode(address,address,uint256,bytes,uint256,uint256)\":{\"params\":{\"_bond\":\"The darknode's bond value\",\"_darknodeID\":\"The darknode's ID.\",\"_darknodeOwner\":\"The darknode's owner's address\",\"_deregisteredAt\":\"The time stamp when the darknode is deregistered.\",\"_publicKey\":\"The darknode's public key\",\"_registeredAt\":\"The time stamp when the darknode is registered.\"}},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"constructor\":{\"params\":{\"_VERSION\":\"A string defining the contract version.\",\"_ren\":\"The address of the RenToken contract.\"}},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"appendDarknode(address,address,uint256,bytes,uint256,uint256)\":{\"notice\":\"Instantiates a darknode and appends it to the darknodes linked-list. \"},\"begin()\":{\"notice\":\"Returns the address of the first darknode in the store\"},\"constructor\":\"The contract constructor. \",\"darknodeBond(address)\":{\"notice\":\"Returns the bond of a given darknode.\"},\"darknodeDeregisteredAt(address)\":{\"notice\":\"Returns the deregistration time of a given darknode.\"},\"darknodeOwner(address)\":{\"notice\":\"Returns the owner of a given darknode.\"},\"darknodePublicKey(address)\":{\"notice\":\"Returns the encryption public key of a given darknode.\"},\"darknodeRegisteredAt(address)\":{\"notice\":\"Returns the registration time of a given darknode.\"},\"next(address)\":{\"notice\":\"Returns the address of the next darknode in the store after the given address.\"},\"removeDarknode(address)\":{\"notice\":\"Removes a darknode from the store and transfers its bond to the owner of this contract.\"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"updateDarknodeBond(address,uint256)\":{\"notice\":\"Updates the bond of a darknode. The new bond must be smaller than the previous bond of the darknode.\"},\"updateDarknodeDeregisteredAt(address,uint256)\":{\"notice\":\"Updates the deregistration timestamp of a darknode.\"}},\"notice\":\"This contract stores data and funds for the DarknodeRegistry contract. The data / fund logic and storage have been separated to improve upgradability.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":\"DarknodeRegistryStore\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604051620015b0380380620015b0833981018060405260408110156200003757600080fd5b8101908080516401000000008111156200005057600080fd5b820160208101848111156200006457600080fd5b81516401000000008111828201871017156200007f57600080fd5b5050602090910151600180546001600160a01b0319163317908190556040519294509092506001600160a01b0316906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38151620000eb90600290602085019062000113565b50600580546001600160a01b0319166001600160a01b039290921691909117905550620001b8565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015657805160ff191683800117855562000186565b8280016001018555821562000186579182015b828111156200018657825182559160200191906001019062000169565b506200019492915062000198565b5090565b620001b591905b808211156200019457600081556001016200019f565b90565b6113e880620001c86000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063a3078815116100a2578063e2d7c64c11610071578063e2d7c64c1461030f578063ee594a5014610335578063f2fde38b146103d0578063fbc402fc146103f6578063ffa1ad741461042257610116565b8063a307881514610207578063a85ef5791461022d578063ab73e316146102c3578063cad41357146102e957610116565b80634e71e0c8116100e95780634e71e0c8146101cb578063715018a6146101d35780638a9b4067146101db5780638da5cb5b146101e35780638f32d59b146101eb57610116565b806301930b6e1461011b5780631bce6ff3146101535780633ac39d4b1461017757806341b44392146101a5575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b031661042a565b60408051918252519081900360200190f35b61015b610496565b604080516001600160a01b039092168252519081900360200190f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104f2565b005b6101a3600480360360208110156101bb57600080fd5b50356001600160a01b031661055c565b6101a36106ee565b6101a36107b5565b61015b610849565b61015b610858565b6101f3610867565b604080519115158252519081900360200190f35b61015b6004803603602081101561021d57600080fd5b50356001600160a01b0316610878565b6101a3600480360360c081101561024357600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561027e57600080fd5b82018360208201111561029057600080fd5b803590602001918460018302840111640100000000831117156102b257600080fd5b9193509150803590602001356108e3565b61015b600480360360208110156102d957600080fd5b50356001600160a01b0316610a1d565b610141600480360360208110156102ff57600080fd5b50356001600160a01b0316610a7a565b6101416004803603602081101561032557600080fd5b50356001600160a01b0316610ae5565b61035b6004803603602081101561034b57600080fd5b50356001600160a01b0316610b50565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039557818101518382015260200161037d565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a3600480360360208110156103e657600080fd5b50356001600160a01b0316610c48565b6101a36004803603604081101561040c57600080fd5b506001600160a01b038135169060200135610cb4565b61035b610e85565b6000610434610867565b6104765760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152600360208190526040909120015490565b60006104a0610867565b6104e25760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6104ec6004610f10565b90505b90565b6104fa610867565b61053c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0390911660009081526003602081905260409091200155565b610564610867565b6105a65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600360208190526040822060018101805482546001600160a01b0319168355908490556002820184905591810183905590916105f46004830182611285565b5050610601600483610f2f565b6005546001600160a01b031663a9059cbb61061a610858565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b50516106ea5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146107505760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6107bd610867565b6107ff5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6005546001600160a01b031681565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b6000610882610867565b6108c45760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b039081166000908152600360205260409020541690565b6108eb610867565b61092d5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6109356112cc565b6040518060a00160405280886001600160a01b0316815260200187815260200184815260200183815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160a01b038b8116825260036020818152604093849020865181546001600160a01b0319169416939093178355858101516001840155928501516002830155606085015190820155608084015180519495508594919350610a04926004850192910190611304565b50905050610a13600489611011565b5050505050505050565b6000610a27610867565b610a695760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b610a74600483611024565b92915050565b6000610a84610867565b610ac65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206001015490565b6000610aef610867565b610b315760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206002015490565b6060610b5a610867565b610b9c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610c3c5780601f10610c1157610100808354040283529160200191610c3c565b820191906000526020600020905b815481529060010190602001808311610c1f57829003601f168201915b50505050509050919050565b610c50610867565b610c925760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cbc610867565b610cfe5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902060010154808210610d715760408051600160e51b62461bcd02815260206004820152601260248201527f626f6e64206e6f74206465637265617365640000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526003602052604090206001018390556005541663a9059cbb610da1610858565b610db1848663ffffffff61109916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b5051610e805760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610f085780601f10610edd57610100808354040283529160200191610f08565b820191906000526020600020905b815481529060010190602001808311610eeb57829003601f168201915b505050505081565b600080805260209190915260409020600101546001600160a01b031690565b610f3982826110f9565b610f7e5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b038116610f91576106ea565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b6106ea8261101e84611118565b8361113a565b600061103083836110f9565b6110755760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6000828211156110f35760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03166000908152602091909152604090205460ff1690565b60008080526020829052604090205461010090046001600160a01b0316919050565b61114483826110f9565b156111995760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111a383836110f9565b806111b557506001600160a01b038216155b6111fa5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff1916179055565b50805460018160011615610100020316600290046000825580601f106112ab57506112c9565b601f0160209004906000526020600020908101906112c99190611382565b50565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134557805160ff1916838001178555611372565b82800160010185558215611372579182015b82811115611372578251825591602001919060010190611357565b5061137e929150611382565b5090565b6104ef91905b8082111561137e576000815560010161138856fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820b02bc8a49b5e057a64ff74c79ba9139860c4d6b30f27acfe35085d38de919f390029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063a3078815116100a2578063e2d7c64c11610071578063e2d7c64c1461030f578063ee594a5014610335578063f2fde38b146103d0578063fbc402fc146103f6578063ffa1ad741461042257610116565b8063a307881514610207578063a85ef5791461022d578063ab73e316146102c3578063cad41357146102e957610116565b80634e71e0c8116100e95780634e71e0c8146101cb578063715018a6146101d35780638a9b4067146101db5780638da5cb5b146101e35780638f32d59b146101eb57610116565b806301930b6e1461011b5780631bce6ff3146101535780633ac39d4b1461017757806341b44392146101a5575b600080fd5b6101416004803603602081101561013157600080fd5b50356001600160a01b031661042a565b60408051918252519081900360200190f35b61015b610496565b604080516001600160a01b039092168252519081900360200190f35b6101a36004803603604081101561018d57600080fd5b506001600160a01b0381351690602001356104f2565b005b6101a3600480360360208110156101bb57600080fd5b50356001600160a01b031661055c565b6101a36106ee565b6101a36107b5565b61015b610849565b61015b610858565b6101f3610867565b604080519115158252519081900360200190f35b61015b6004803603602081101561021d57600080fd5b50356001600160a01b0316610878565b6101a3600480360360c081101561024357600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561027e57600080fd5b82018360208201111561029057600080fd5b803590602001918460018302840111640100000000831117156102b257600080fd5b9193509150803590602001356108e3565b61015b600480360360208110156102d957600080fd5b50356001600160a01b0316610a1d565b610141600480360360208110156102ff57600080fd5b50356001600160a01b0316610a7a565b6101416004803603602081101561032557600080fd5b50356001600160a01b0316610ae5565b61035b6004803603602081101561034b57600080fd5b50356001600160a01b0316610b50565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561039557818101518382015260200161037d565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101a3600480360360208110156103e657600080fd5b50356001600160a01b0316610c48565b6101a36004803603604081101561040c57600080fd5b506001600160a01b038135169060200135610cb4565b61035b610e85565b6000610434610867565b6104765760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b03166000908152600360208190526040909120015490565b60006104a0610867565b6104e25760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6104ec6004610f10565b90505b90565b6104fa610867565b61053c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0390911660009081526003602081905260409091200155565b610564610867565b6105a65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b0381166000908152600360208190526040822060018101805482546001600160a01b0319168355908490556002820184905591810183905590916105f46004830182611285565b5050610601600483610f2f565b6005546001600160a01b031663a9059cbb61061a610858565b836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561066a57600080fd5b505af115801561067e573d6000803e3d6000fd5b505050506040513d602081101561069457600080fd5b50516106ea5760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b5050565b6000546001600160a01b031633146107505760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6107bd610867565b6107ff5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6005546001600160a01b031681565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b6000610882610867565b6108c45760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b039081166000908152600360205260409020541690565b6108eb610867565b61092d5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6109356112cc565b6040518060a00160405280886001600160a01b0316815260200187815260200184815260200183815260200186868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509390945250506001600160a01b038b8116825260036020818152604093849020865181546001600160a01b0319169416939093178355858101516001840155928501516002830155606085015190820155608084015180519495508594919350610a04926004850192910190611304565b50905050610a13600489611011565b5050505050505050565b6000610a27610867565b610a695760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b610a74600483611024565b92915050565b6000610a84610867565b610ac65760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206001015490565b6000610aef610867565b610b315760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b506001600160a01b031660009081526003602052604090206002015490565b6060610b5a610867565b610b9c5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b03821660009081526003602090815260409182902060040180548351601f600260001961010060018616150201909316929092049182018490048402810184019094528084529091830182828015610c3c5780601f10610c1157610100808354040283529160200191610c3c565b820191906000526020600020905b815481529060010190602001808311610c1f57829003601f168201915b50505050509050919050565b610c50610867565b610c925760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b610cbc610867565b610cfe5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061139d833981519152604482015290519081900360640190fd5b6001600160a01b038216600090815260036020526040902060010154808210610d715760408051600160e51b62461bcd02815260206004820152601260248201527f626f6e64206e6f74206465637265617365640000000000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380841660009081526003602052604090206001018390556005541663a9059cbb610da1610858565b610db1848663ffffffff61109916565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610e0057600080fd5b505af1158015610e14573d6000803e3d6000fd5b505050506040513d6020811015610e2a57600080fd5b5051610e805760408051600160e51b62461bcd02815260206004820152601460248201527f626f6e64207472616e73666572206661696c6564000000000000000000000000604482015290519081900360640190fd5b505050565b6002805460408051602060018416156101000260001901909316849004601f81018490048402820184019092528181529291830182828015610f085780601f10610edd57610100808354040283529160200191610f08565b820191906000526020600020905b815481529060010190602001808311610eeb57829003601f168201915b505050505081565b600080805260209190915260409020600101546001600160a01b031690565b610f3982826110f9565b610f7e5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b038116610f91576106ea565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b6106ea8261101e84611118565b8361113a565b600061103083836110f9565b6110755760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6000828211156110f35760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6001600160a01b03166000908152602091909152604090205460ff1690565b60008080526020829052604090205461010090046001600160a01b0316919050565b61114483826110f9565b156111995760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111a383836110f9565b806111b557506001600160a01b038216155b6111fa5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff1916179055565b50805460018160011615610100020316600290046000825580601f106112ab57506112c9565b601f0160209004906000526020600020908101906112c99190611382565b50565b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001606081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061134557805160ff1916838001178555611372565b82800160010185558215611372579182015b82811115611372578251825591602001919060010190611357565b5061137e929150611382565b5090565b6104ef91905b8082111561137e576000815560010161138856fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a72305820b02bc8a49b5e057a64ff74c79ba9139860c4d6b30f27acfe35085d38de919f390029", - "sourceMap": "368:5752:4:-;;;2200:135;8:9:-1;5:2;;;30:1;27;20:12;5:2;2200:135:4;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2200:135:4;;;;;;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;;2200:135:4;;;;;528:6:12;:19;;-1:-1:-1;;;;;;528:19:12;537:10;528:19;;;;;2200:135:4;562:40:12;2200:135:4;;-1:-1:-1;2200:135:4;;-1:-1:-1;;;;;;595:6:12;;528;;562:40;;528:6;;562:40;2290:18:4;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;2318:3:4;:10;;-1:-1:-1;;;;;;2318:10:4;-1:-1:-1;;;;;2318:10:4;;;;;;;;;;-1:-1:-1;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:5752:4;;;-1:-1:-1;368:5752:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "368:5752:4:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5724:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5724:161:4;-1:-1:-1;;;;;5724:161:4;;:::i;:::-;;;;;;;;;;;;;;;;3469:109;;;:::i;:::-;;;;-1:-1:-1;;;;;3469:109:4;;;;;;;;;;;;;;4828:178;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4828:178:4;;;;;;;;:::i;:::-;;3942:293;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3942:293:4;-1:-1:-1;;;;;3942:293:4;;:::i;2166:177:12:-;;;:::i;1688:137::-;;;:::i;2002:19:4:-;;;:::i;672:77:12:-;;;:::i;1244:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;5067:151:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5067:151:4;-1:-1:-1;;;;;5067:151:4;;:::i;2806:586::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2806:586:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2806:586:4;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2806:586:4;;;;;;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;2806:586:4;;-1:-1:-1;2806:586:4;-1:-1:-1;2806:586:4;;;;;;;:::i;3687:137::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3687:137:4;-1:-1:-1;;;;;3687:137:4;;:::i;5278:141::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5278:141:4;-1:-1:-1;;;;;5278:141:4;;:::i;5492:157::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5492:157:4;-1:-1:-1;;;;;5492:157:4;;:::i;5962:156::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5962:156:4;-1:-1:-1;;;;;5962:156:4;;:::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;5962:156:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1975:101:12;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:12;-1:-1:-1;;;;;1975:101:12;;:::i;4366:388:4:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4366:388:4;;;;;;;;:::i;451:21::-;;;:::i;5724:161::-;5809:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5835:28:4;;;;;:16;:28;;;;;;;;:43;;;5724:161::o;3469:109::-;3518:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3544:27:4;3561:9;3544:16;:27::i;:::-;3537:34;;923:1:12;3469:109:4;:::o;4828:178::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;4939:28:4;;;;;;;:16;:28;;;;;;;;:43;:60;4828:178::o;3942:293::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;4030:28:4;;4015:12;4030:28;;;:16;:28;;;;;;;:33;;;;;4073:35;;-1:-1:-1;;;;;;4073:35:4;;;;;;;;;;;;;;;;;;;4030:33;;4073:35;;;;4015:12;4073:35;:::i;:::-;;;4118:40;4136:9;4147:10;4118:17;:40::i;:::-;4176:3;;-1:-1:-1;;;;;4176:3:4;:12;4189:7;:5;:7::i;:::-;4198:4;4176:27;;;;;;;;;;;;;-1:-1:-1;;;;;4176:27:4;-1:-1:-1;;;;;4176:27:4;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4176:27:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4176:27:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4176:27:4;4168:60;;;;;-1:-1:-1;;;;;4168:60:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:12;3942:293:4;:::o;2166:177:12:-;1091:13;;-1:-1:-1;;;;;1091:13:12;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:12;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:12;;;-1:-1:-1;;;;;2289:13:12;;2280:22;;;;2310:26;;;2166:177::o;1688:137::-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:12;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:12;;;1688:137::o;2002:19:4:-;;;-1:-1:-1;;;;;2002:19:4;;:::o;672:77:12:-;736:6;;-1:-1:-1;;;;;736:6:12;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:12;1307:10;:20;;1244:90::o;5067:151:4:-;5143:15;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5177:28:4;;;;;;;:16;:28;;;;;:34;;;5067:151::o;2806:586::-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3056:24:4;;:::i;:::-;3083:201;;;;;;;;3113:14;-1:-1:-1;;;;;3083:201:4;;;;;3147:5;3083:201;;;;3215:13;3083:201;;;;3258:15;3083:201;;;;3177:10;;3083:201;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;-1:-1;3083:201:4;;;;-1:-1:-1;;;;;;;3294:29:4;;;;;:16;:29;;;;;;;;;:40;;;;-1:-1:-1;;;;;;3294:40:4;;;;;;;;;;;;;-1:-1:-1;3294:40:4;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3294:40:4;;:29;;-1:-1:-1;3294:40:4;;;;;;;;;;:::i;:::-;;;;;3344:41;3362:9;3373:11;3344:17;:41::i;:::-;923:1:12;2806:586:4;;;;;;;:::o;3687:137::-;3753:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;3779:38:4;3795:9;3806:10;3779:15;:38::i;:::-;3772:45;3687:137;-1:-1:-1;;3687:137:4:o;5278:141::-;5353:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5379:28:4;;;;;:16;:28;;;;;:33;;;;5278:141::o;5492:157::-;5575:7;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5601:28:4;;;;;:16;:28;;;;;:41;;;;5492:157::o;5962:156::-;6042:12;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;6073:28:4;;;;;;:16;:28;;;;;;;;;:38;;6066:45;;;;;;-1:-1:-1;;6066:45:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6073:38;;6066:45;;6073:38;6066:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5962:156;;;:::o;1975:101:12:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:12;-1:-1:-1;;;;;2045:24:12;;;;;;;;;;1975:101::o;4366:388:4:-;876:9:12;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:12;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:12;;;;;;;;;;;;;;;-1:-1:-1;;;;;4489:28:4;;4466:20;4489:28;;;:16;:28;;;;;:33;;;4540:28;;;4532:59;;;;;-1:-1:-1;;;;;4532:59:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4601:28:4;;;;;;;:16;:28;;;;;:33;;:49;;;4668:3;;;:12;4681:7;:5;:7::i;:::-;4690:31;:12;4707:13;4690:31;:16;:31;:::i;:::-;4668:54;;;;;;;;;;;;;-1:-1:-1;;;;;4668:54:4;-1:-1:-1;;;;;4668:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4668:54:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4668:54:4;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4668:54:4;4660:87;;;;;-1:-1:-1;;;;;4660:87:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:12;4366:388:4;;:::o;451:21::-;;;;;;;;;;;;;;-1:-1:-1;;451:21:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4696:110:15:-;4753:7;4779:15;;;;;;;;;;;:20;;;-1:-1:-1;;;;;4779:20:15;;4696:110::o;2757:514::-;2833:20;2842:4;2848;2833:8;:20::i;:::-;2825:44;;;;;-1:-1:-1;;;;;2825:44:15;;;;;;;;;;;;-1:-1:-1;;;;;2825:44:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;2883:12:15;;2879:49;;2911:7;;2879:49;-1:-1:-1;;;;;2949:15:15;;;2937:9;2949:15;;;;;;;;;;;;:24;;;2995:20;;;;;2949:24;;;;;;;3026:12;;;;;;:17;;;:21;;2995:20;;;;-1:-1:-1;;;;;;3026:21:15;;;;;;;;3057:12;;;;;;:25;;-1:-1:-1;;;;;;3057:25:15;;;;;;;;3202:15;;;;:30;;-1:-1:-1;;;;;;3242:22:15;;;;;;;;2757:514::o;3808:163::-;3930:34;3942:4;3948:9;3952:4;3948:3;:9::i;:::-;3959:4;3930:11;:34::i;5148:177::-;5218:7;5245:20;5254:4;5260;5245:8;:20::i;:::-;5237:44;;;;;-1:-1:-1;;;;;5237:44:15;;;;;;;;;;;;-1:-1:-1;;;;;5237:44:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5298:15:15;;;:9;:15;;;;;;;;;;;;:20;;;;;5148:177::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;4334:126:15:-;-1:-1:-1;;;;;4431:15:15;4408:4;4431:15;;;;;;;;;;;:22;;;;4334:126::o;5030:112::-;5085:7;5111:15;;;;;;;;;;:24;;;;-1:-1:-1;;;;;5111:24:15;5030:112;;;:::o;1906:541::-;2007:23;2016:4;2022:7;2007:8;:23::i;:::-;2006:24;1998:52;;;;;-1:-1:-1;;;;;1998:52:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:22;2077:4;2083:6;2068:8;:22::i;:::-;:40;;;-1:-1:-1;;;;;;2094:14:15;;;2068:40;2060:64;;;;;-1:-1:-1;;;;;2060:64:15;;;;;;;;;;;;-1:-1:-1;;;;;2060:64:15;;;;;;;;;;;;;;;-1:-1:-1;;;;;2208:17:15;;;2196:9;2208:17;;;;;;;;;;;;:22;;;;;;2241:18;;;;;;;;;:36;;-1:-1:-1;;;;;;2241:36:15;;;2208:22;2241:36;;;;;;2287:23;;;:27;;2208:22;;;;-1:-1:-1;;;;;;2287:27:15;;;;;;;;2324:32;;;;;;;;;;2366:12;;;;;;:31;;;;;;;;;;;;;;;2408:18;;;;:32;;-1:-1:-1;;2408:32:15;;;;1906:541::o;368:5752:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;-1:-1:-1;;;;;368:5752:4;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;368:5752:4;;;-1:-1:-1;368:5752:4;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\nimport \"../libraries/Claimable.sol\";\nimport \"../libraries/LinkedList.sol\";\nimport \"../RenToken/RenToken.sol\";\n\n/// @notice This contract stores data and funds for the DarknodeRegistry\n/// contract. The data / fund logic and storage have been separated to improve\n/// upgradability.\ncontract DarknodeRegistryStore is Claimable {\n using SafeMath for uint256;\n\n string public VERSION; // Passed in as a constructor parameter.\n\n /// @notice Darknodes are stored in the darknode struct. The owner is the\n /// address that registered the darknode, the bond is the amount of REN that\n /// was transferred during registration, and the public key is the\n /// encryption key that should be used when sending sensitive information to\n /// the darknode.\n struct Darknode {\n // The owner of a Darknode is the address that called the register\n // function. The owner is the only address that is allowed to\n // deregister the Darknode, unless the Darknode is slashed for\n // malicious behavior.\n address payable owner;\n\n // The bond is the amount of REN submitted as a bond by the Darknode.\n // This amount is reduced when the Darknode is slashed for malicious\n // behavior.\n uint256 bond;\n\n // The block number at which the Darknode is considered registered.\n uint256 registeredAt;\n\n // The block number at which the Darknode is considered deregistered.\n uint256 deregisteredAt;\n\n // The public key used by this Darknode for encrypting sensitive data\n // off chain. It is assumed that the Darknode has access to the\n // respective private key, and that there is an agreement on the format\n // of the public key.\n bytes publicKey;\n }\n\n /// Registry data.\n mapping(address => Darknode) private darknodeRegistry;\n LinkedList.List private darknodes;\n\n // RenToken.\n RenToken public ren;\n\n /// @notice The contract constructor.\n ///\n /// @param _VERSION A string defining the contract version.\n /// @param _ren The address of the RenToken contract.\n constructor(\n string memory _VERSION,\n RenToken _ren\n ) public {\n VERSION = _VERSION;\n ren = _ren;\n }\n\n /// @notice Instantiates a darknode and appends it to the darknodes\n /// linked-list.\n ///\n /// @param _darknodeID The darknode's ID.\n /// @param _darknodeOwner The darknode's owner's address\n /// @param _bond The darknode's bond value\n /// @param _publicKey The darknode's public key\n /// @param _registeredAt The time stamp when the darknode is registered.\n /// @param _deregisteredAt The time stamp when the darknode is deregistered.\n function appendDarknode(\n address _darknodeID,\n address payable _darknodeOwner,\n uint256 _bond,\n bytes calldata _publicKey,\n uint256 _registeredAt,\n uint256 _deregisteredAt\n ) external onlyOwner {\n Darknode memory darknode = Darknode({\n owner: _darknodeOwner,\n bond: _bond,\n publicKey: _publicKey,\n registeredAt: _registeredAt,\n deregisteredAt: _deregisteredAt\n });\n darknodeRegistry[_darknodeID] = darknode;\n LinkedList.append(darknodes, _darknodeID);\n }\n\n /// @notice Returns the address of the first darknode in the store\n function begin() external view onlyOwner returns(address) {\n return LinkedList.begin(darknodes);\n }\n\n /// @notice Returns the address of the next darknode in the store after the\n /// given address.\n function next(address darknodeID) external view onlyOwner returns(address) {\n return LinkedList.next(darknodes, darknodeID);\n }\n\n /// @notice Removes a darknode from the store and transfers its bond to the\n /// owner of this contract.\n function removeDarknode(address darknodeID) external onlyOwner {\n uint256 bond = darknodeRegistry[darknodeID].bond;\n delete darknodeRegistry[darknodeID];\n LinkedList.remove(darknodes, darknodeID);\n require(ren.transfer(owner(), bond), \"bond transfer failed\");\n }\n\n /// @notice Updates the bond of a darknode. The new bond must be smaller\n /// than the previous bond of the darknode.\n function updateDarknodeBond(address darknodeID, uint256 decreasedBond) external onlyOwner {\n uint256 previousBond = darknodeRegistry[darknodeID].bond;\n require(decreasedBond < previousBond, \"bond not decreased\");\n darknodeRegistry[darknodeID].bond = decreasedBond;\n require(ren.transfer(owner(), previousBond.sub(decreasedBond)), \"bond transfer failed\");\n }\n\n /// @notice Updates the deregistration timestamp of a darknode.\n function updateDarknodeDeregisteredAt(address darknodeID, uint256 deregisteredAt) external onlyOwner {\n darknodeRegistry[darknodeID].deregisteredAt = deregisteredAt;\n }\n\n /// @notice Returns the owner of a given darknode.\n function darknodeOwner(address darknodeID) external view onlyOwner returns (address payable) {\n return darknodeRegistry[darknodeID].owner;\n }\n\n /// @notice Returns the bond of a given darknode.\n function darknodeBond(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].bond;\n }\n\n /// @notice Returns the registration time of a given darknode.\n function darknodeRegisteredAt(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].registeredAt;\n }\n\n /// @notice Returns the deregistration time of a given darknode.\n function darknodeDeregisteredAt(address darknodeID) external view onlyOwner returns (uint256) {\n return darknodeRegistry[darknodeID].deregisteredAt;\n }\n\n /// @notice Returns the encryption public key of a given darknode.\n function darknodePublicKey(address darknodeID) external view onlyOwner returns (bytes memory) {\n return darknodeRegistry[darknodeID].publicKey;\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "exportedSymbols": { - "DarknodeRegistryStore": [ - 2682 - ] - }, - "id": 2683, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2392, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2393, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 7535, - "src": "25:59:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2394, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 4457, - "src": "86:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 2395, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 5234, - "src": "123:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 2808, - "src": "161:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2397, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4456, - "src": "402:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4456", - "typeString": "contract Claimable" - } - }, - "id": 2398, - "nodeType": "InheritanceSpecifier", - "src": "402:9:4" - } - ], - "contractDependencies": [ - 4456 - ], - "contractKind": "contract", - "documentation": "@notice This contract stores data and funds for the DarknodeRegistry\n contract. The data / fund logic and storage have been separated to improve\n upgradability.", - "fullyImplemented": true, - "id": 2682, - "linearizedBaseContracts": [ - 2682, - 4456 - ], - "name": "DarknodeRegistryStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2401, - "libraryName": { - "contractScope": null, - "id": 2399, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "424:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:4", - "typeName": { - "id": 2400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2403, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "451:21:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistryStore.Darknode", - "id": 2414, - "members": [ - { - "constant": false, - "id": 2405, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1126:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1334:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1433:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1542:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "publicKey", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1835:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1835:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Darknode", - "nodeType": "StructDefinition", - "scope": 2682, - "src": "853:1004:4", - "visibility": "public" - }, - { - "constant": false, - "id": 2418, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1886:53:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "typeName": { - "id": 2417, - "keyType": { - "id": 2415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1894:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1886:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "valueType": { - "contractScope": null, - "id": 2416, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "1905:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2420, - "name": "darknodes", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1945:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 2419, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4829, - "src": "1945:15:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2422, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "2002:19:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2421, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2002:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "2280:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2429, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "2290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2430, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2424, - "src": "2300:8:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 2432, - "nodeType": "ExpressionStatement", - "src": "2290:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2433, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "2318:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2434, - "name": "_ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2324:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "2318:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "2318:10:4" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _ren The address of the RenToken contract.", - "id": 2438, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2221:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "name": "_ren", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2253:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2425, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2211:61:4" - }, - "returnParameters": { - "id": 2428, - "nodeType": "ParameterList", - "parameters": [], - "src": "2280:0:4" - }, - "scope": 2682, - "src": "2200:135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2478, - "nodeType": "Block", - "src": "3046:346:4", - "statements": [ - { - "assignments": [ - 2456 - ], - "declarations": [ - { - "constant": false, - "id": 2456, - "name": "darknode", - "nodeType": "VariableDeclaration", - "scope": 2478, - "src": "3056:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - }, - "typeName": { - "contractScope": null, - "id": 2455, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "3056:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2464, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "_darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "3113:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2459, - "name": "_bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2444, - "src": "3147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2460, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2446, - "src": "3177:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 2461, - "name": "_registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "3215:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2462, - "name": "_deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2450, - "src": "3258:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2457, - "name": "Darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "3083:8:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Darknode_$2414_storage_ptr_$", - "typeString": "type(struct DarknodeRegistryStore.Darknode storage pointer)" - } - }, - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "owner", - "bond", - "publicKey", - "registeredAt", - "deregisteredAt" - ], - "nodeType": "FunctionCall", - "src": "3083:201:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:228:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3294:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3311:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3294:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2468, - "name": "darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2456, - "src": "3326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "src": "3294:40:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "3294:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3373:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2471, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "3344:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 5100, - "src": "3344:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4829_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3344:41:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2477, - "nodeType": "ExpressionStatement", - "src": "3344:41:4" - } - ] - }, - "documentation": "@notice Instantiates a darknode and appends it to the darknodes\n linked-list.\n\n /// @param _darknodeID The darknode's ID.\n @param _darknodeOwner The darknode's owner's address\n @param _bond The darknode's bond value\n @param _publicKey The darknode's public key\n @param _registeredAt The time stamp when the darknode is registered.\n @param _deregisteredAt The time stamp when the darknode is deregistered.", - "id": 2479, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2453, - "modifierName": { - "argumentTypes": null, - "id": 2452, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3036:9:4" - } - ], - "name": "appendDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2839:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2868:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2868:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2908:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2931:25:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2931:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2448, - "name": "_registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2966:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2966:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2450, - "name": "_deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2997:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2449, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:197:4" - }, - "returnParameters": { - "id": 2454, - "nodeType": "ParameterList", - "parameters": [], - "src": "3046:0:4" - }, - "scope": 2682, - "src": "2806:586:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2491, - "nodeType": "Block", - "src": "3527:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2488, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 2486, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "3544:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5170, - "src": "3544:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4829_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3544:27:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2485, - "id": 2490, - "nodeType": "Return", - "src": "3537:34:4" - } - ] - }, - "documentation": "@notice Returns the address of the first darknode in the store", - "id": 2492, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2482, - "modifierName": { - "argumentTypes": null, - "id": 2481, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3500:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3500:9:4" - } - ], - "name": "begin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2480, - "nodeType": "ParameterList", - "parameters": [], - "src": "3483:2:4" - }, - "returnParameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2492, - "src": "3518:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:9:4" - }, - "scope": 2682, - "src": "3469:109:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2507, - "nodeType": "Block", - "src": "3762:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2503, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3795:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2504, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3806:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "3779:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5208, - "src": "3779:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4829_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3779:38:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2500, - "id": 2506, - "nodeType": "Return", - "src": "3772:45:4" - } - ] - }, - "documentation": "@notice Returns the address of the next darknode in the store after the\n given address.", - "id": 2508, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2497, - "modifierName": { - "argumentTypes": null, - "id": 2496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3735:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3735:9:4" - } - ], - "name": "next", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3701:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3700:20:4" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2499, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3753:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3753:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:9:4" - }, - "scope": 2682, - "src": "3687:137:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2544, - "nodeType": "Block", - "src": "4005:230:4", - "statements": [ - { - "assignments": [ - 2516 - ], - "declarations": [ - { - "constant": false, - "id": 2516, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2544, - "src": "4015:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2521, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2517, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4030:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2519, - "indexExpression": { - "argumentTypes": null, - "id": 2518, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4047:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4030:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4030:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4015:48:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4073:35:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2522, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4080:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2524, - "indexExpression": { - "argumentTypes": null, - "id": 2523, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4097:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4080:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "4073:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2530, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "4136:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2531, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4147:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "4118:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 5068, - "src": "4118:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4829_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:40:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "4118:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4370, - "src": "4189:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2539, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "4198:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4176:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "4176:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4176:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4205:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4168:60:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2543, - "nodeType": "ExpressionStatement", - "src": "4168:60:4" - } - ] - }, - "documentation": "@notice Removes a darknode from the store and transfers its bond to the\n owner of this contract.", - "id": 2545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2513, - "modifierName": { - "argumentTypes": null, - "id": 2512, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3995:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3995:9:4" - } - ], - "name": "removeDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2510, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2545, - "src": "3966:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3965:20:4" - }, - "returnParameters": { - "id": 2514, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:4" - }, - "scope": 2682, - "src": "3942:293:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2588, - "nodeType": "Block", - "src": "4456:298:4", - "statements": [ - { - "assignments": [ - 2555 - ], - "declarations": [ - { - "constant": false, - "id": 2555, - "name": "previousBond", - "nodeType": "VariableDeclaration", - "scope": 2588, - "src": "4466:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4466:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4489:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4506:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4489:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4489:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4466:56:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2562, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4540:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2563, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4556:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4540:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64206e6f7420646563726561736564", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4570:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - }, - "value": "bond not decreased" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - } - ], - "id": 2561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:59:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2567, - "nodeType": "ExpressionStatement", - "src": "4532:59:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4601:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2572, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4637:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4601:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "4601:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2578, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4370, - "src": "4681:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4681:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4707:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2580, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4690:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "4690:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4690:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2576, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4668:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "4668:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4668:54:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4724:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4660:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4660:87:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "4660:87:4" - } - ] - }, - "documentation": "@notice Updates the bond of a darknode. The new bond must be smaller\n than the previous bond of the darknode.", - "id": 2589, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2552, - "modifierName": { - "argumentTypes": null, - "id": 2551, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4446:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4446:9:4" - } - ], - "name": "updateDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2547, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4394:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4394:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2549, - "name": "decreasedBond", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4414:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4414:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4393:43:4" - }, - "returnParameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "4456:0:4" - }, - "scope": 2682, - "src": "4366:388:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2605, - "nodeType": "Block", - "src": "4929:77:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2598, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4939:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2600, - "indexExpression": { - "argumentTypes": null, - "id": 2599, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "4956:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "4939:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2602, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "4985:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4939:60:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "4939:60:4" - } - ] - }, - "documentation": "@notice Updates the deregistration timestamp of a darknode.", - "id": 2606, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2596, - "modifierName": { - "argumentTypes": null, - "id": 2595, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4919:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4919:9:4" - } - ], - "name": "updateDarknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2591, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4866:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4886:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4886:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4865:44:4" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [], - "src": "4929:0:4" - }, - "scope": 2682, - "src": "4828:178:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5160:58:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2615, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5177:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2617, - "indexExpression": { - "argumentTypes": null, - "id": 2616, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2608, - "src": "5194:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5177:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2405, - "src": "5177:34:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2614, - "id": 2619, - "nodeType": "Return", - "src": "5170:41:4" - } - ] - }, - "documentation": "@notice Returns the owner of a given darknode.", - "id": 2621, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2611, - "modifierName": { - "argumentTypes": null, - "id": 2610, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5124:9:4" - } - ], - "name": "darknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2608, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5090:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5089:20:4" - }, - "returnParameters": { - "id": 2614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2613, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5143:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5143:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5142:17:4" - }, - "scope": 2682, - "src": "5067:151:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2635, - "nodeType": "Block", - "src": "5362:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2630, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5379:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2632, - "indexExpression": { - "argumentTypes": null, - "id": 2631, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5379:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "5379:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2629, - "id": 2634, - "nodeType": "Return", - "src": "5372:40:4" - } - ] - }, - "documentation": "@notice Returns the bond of a given darknode.", - "id": 2636, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2626, - "modifierName": { - "argumentTypes": null, - "id": 2625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5334:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:9:4" - } - ], - "name": "darknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5300:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5299:20:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5353:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5353:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:9:4" - }, - "scope": 2682, - "src": "5278:141:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "5584:65:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2645, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2647, - "indexExpression": { - "argumentTypes": null, - "id": 2646, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2638, - "src": "5618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2409, - "src": "5601:41:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2644, - "id": 2649, - "nodeType": "Return", - "src": "5594:48:4" - } - ] - }, - "documentation": "@notice Returns the registration time of a given darknode.", - "id": 2651, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2641, - "modifierName": { - "argumentTypes": null, - "id": 2640, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5556:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:9:4" - } - ], - "name": "darknodeRegisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5522:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5521:20:4" - }, - "returnParameters": { - "id": 2644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5575:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5574:9:4" - }, - "scope": 2682, - "src": "5492:157:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "5818:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2660, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5835:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2662, - "indexExpression": { - "argumentTypes": null, - "id": 2661, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "5852:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5835:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "5835:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2659, - "id": 2664, - "nodeType": "Return", - "src": "5828:50:4" - } - ] - }, - "documentation": "@notice Returns the deregistration time of a given darknode.", - "id": 2666, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5790:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5790:9:4" - } - ], - "name": "darknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5756:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5756:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:20:4" - }, - "returnParameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5809:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5808:9:4" - }, - "scope": 2682, - "src": "5724:161:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2680, - "nodeType": "Block", - "src": "6056:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2675, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "6073:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2677, - "indexExpression": { - "argumentTypes": null, - "id": 2676, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6090:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6073:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "publicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2413, - "src": "6073:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 2674, - "id": 2679, - "nodeType": "Return", - "src": "6066:45:4" - } - ] - }, - "documentation": "@notice Returns the encryption public key of a given darknode.", - "id": 2681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2671, - "modifierName": { - "argumentTypes": null, - "id": 2670, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "6023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6023:9:4" - } - ], - "name": "darknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "5989:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5988:20:4" - }, - "returnParameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "6042:12:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2672, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6041:14:4" - }, - "scope": 2682, - "src": "5962:156:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2683, - "src": "368:5752:4" - } - ], - "src": "0:6120:4" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol", - "exportedSymbols": { - "DarknodeRegistryStore": [ - 2682 - ] - }, - "id": 2683, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2392, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:4" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2393, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 7535, - "src": "25:59:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2394, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 4457, - "src": "86:36:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 2395, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 5234, - "src": "123:37:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "file": "../RenToken/RenToken.sol", - "id": 2396, - "nodeType": "ImportDirective", - "scope": 2683, - "sourceUnit": 2808, - "src": "161:34:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2397, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4456, - "src": "402:9:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4456", - "typeString": "contract Claimable" - } - }, - "id": 2398, - "nodeType": "InheritanceSpecifier", - "src": "402:9:4" - } - ], - "contractDependencies": [ - 4456 - ], - "contractKind": "contract", - "documentation": "@notice This contract stores data and funds for the DarknodeRegistry\n contract. The data / fund logic and storage have been separated to improve\n upgradability.", - "fullyImplemented": true, - "id": 2682, - "linearizedBaseContracts": [ - 2682, - 4456 - ], - "name": "DarknodeRegistryStore", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2401, - "libraryName": { - "contractScope": null, - "id": 2399, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7534, - "src": "424:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7534", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "418:27:4", - "typeName": { - "id": 2400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "437:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2403, - "name": "VERSION", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "451:21:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 2402, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "451:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "canonicalName": "DarknodeRegistryStore.Darknode", - "id": 2414, - "members": [ - { - "constant": false, - "id": 2405, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1126:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1126:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2407, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1334:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2406, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1334:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2409, - "name": "registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1433:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2408, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1433:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2411, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1542:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2410, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1542:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2413, - "name": "publicKey", - "nodeType": "VariableDeclaration", - "scope": 2414, - "src": "1835:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2412, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1835:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Darknode", - "nodeType": "StructDefinition", - "scope": 2682, - "src": "853:1004:4", - "visibility": "public" - }, - { - "constant": false, - "id": 2418, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1886:53:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "typeName": { - "id": 2417, - "keyType": { - "id": 2415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1894:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1886:28:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode)" - }, - "valueType": { - "contractScope": null, - "id": 2416, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "1905:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2420, - "name": "darknodes", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "1945:33:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 2419, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4829, - "src": "1945:15:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 2422, - "name": "ren", - "nodeType": "VariableDeclaration", - "scope": 2682, - "src": "2002:19:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2421, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2002:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "2280:55:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2429, - "name": "VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2403, - "src": "2290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2430, - "name": "_VERSION", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2424, - "src": "2300:8:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2290:18:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 2432, - "nodeType": "ExpressionStatement", - "src": "2290:18:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2433, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "2318:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2434, - "name": "_ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2426, - "src": "2324:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "src": "2318:10:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "2318:10:4" - } - ] - }, - "documentation": "@notice The contract constructor.\n\n /// @param _VERSION A string defining the contract version.\n @param _ren The address of the RenToken contract.", - "id": 2438, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2424, - "name": "_VERSION", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2221:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2221:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2426, - "name": "_ren", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "2253:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - }, - "typeName": { - "contractScope": null, - "id": 2425, - "name": "RenToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2807, - "src": "2253:8:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2211:61:4" - }, - "returnParameters": { - "id": 2428, - "nodeType": "ParameterList", - "parameters": [], - "src": "2280:0:4" - }, - "scope": 2682, - "src": "2200:135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2478, - "nodeType": "Block", - "src": "3046:346:4", - "statements": [ - { - "assignments": [ - 2456 - ], - "declarations": [ - { - "constant": false, - "id": 2456, - "name": "darknode", - "nodeType": "VariableDeclaration", - "scope": 2478, - "src": "3056:24:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - }, - "typeName": { - "contractScope": null, - "id": 2455, - "name": "Darknode", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2414, - "src": "3056:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2464, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2458, - "name": "_darknodeOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "3113:14:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2459, - "name": "_bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2444, - "src": "3147:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2460, - "name": "_publicKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2446, - "src": "3177:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "id": 2461, - "name": "_registeredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "3215:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2462, - "name": "_deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2450, - "src": "3258:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2457, - "name": "Darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2414, - "src": "3083:8:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Darknode_$2414_storage_ptr_$", - "typeString": "type(struct DarknodeRegistryStore.Darknode storage pointer)" - } - }, - "id": 2463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "owner", - "bond", - "publicKey", - "registeredAt", - "deregisteredAt" - ], - "nodeType": "FunctionCall", - "src": "3083:201:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3056:228:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2465, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "3294:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2467, - "indexExpression": { - "argumentTypes": null, - "id": 2466, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3311:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3294:29:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2468, - "name": "darknode", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2456, - "src": "3326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_memory_ptr", - "typeString": "struct DarknodeRegistryStore.Darknode memory" - } - }, - "src": "3294:40:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2470, - "nodeType": "ExpressionStatement", - "src": "3294:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2474, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3362:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2475, - "name": "_darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "3373:11:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2471, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "3344:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 5100, - "src": "3344:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4829_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3344:41:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2477, - "nodeType": "ExpressionStatement", - "src": "3344:41:4" - } - ] - }, - "documentation": "@notice Instantiates a darknode and appends it to the darknodes\n linked-list.\n\n /// @param _darknodeID The darknode's ID.\n @param _darknodeOwner The darknode's owner's address\n @param _bond The darknode's bond value\n @param _publicKey The darknode's public key\n @param _registeredAt The time stamp when the darknode is registered.\n @param _deregisteredAt The time stamp when the darknode is deregistered.", - "id": 2479, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2453, - "modifierName": { - "argumentTypes": null, - "id": 2452, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3036:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3036:9:4" - } - ], - "name": "appendDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2451, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2839:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2439, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2839:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_darknodeOwner", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2868:30:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2441, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2868:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2444, - "name": "_bond", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2908:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2443, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2908:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2446, - "name": "_publicKey", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2931:25:4", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2445, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2931:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2448, - "name": "_registeredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2966:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2447, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2966:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2450, - "name": "_deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2479, - "src": "2997:23:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2449, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2997:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2829:197:4" - }, - "returnParameters": { - "id": 2454, - "nodeType": "ParameterList", - "parameters": [], - "src": "3046:0:4" - }, - "scope": 2682, - "src": "2806:586:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2491, - "nodeType": "Block", - "src": "3527:51:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2488, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3561:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 2486, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "3544:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5170, - "src": "3544:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4829_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 2489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3544:27:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2485, - "id": 2490, - "nodeType": "Return", - "src": "3537:34:4" - } - ] - }, - "documentation": "@notice Returns the address of the first darknode in the store", - "id": 2492, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2482, - "modifierName": { - "argumentTypes": null, - "id": 2481, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3500:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3500:9:4" - } - ], - "name": "begin", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2480, - "nodeType": "ParameterList", - "parameters": [], - "src": "3483:2:4" - }, - "returnParameters": { - "id": 2485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2484, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2492, - "src": "3518:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3518:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3517:9:4" - }, - "scope": 2682, - "src": "3469:109:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2507, - "nodeType": "Block", - "src": "3762:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2503, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "3795:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2504, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2494, - "src": "3806:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2501, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "3779:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5208, - "src": "3779:15:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4829_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 2505, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3779:38:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2500, - "id": 2506, - "nodeType": "Return", - "src": "3772:45:4" - } - ] - }, - "documentation": "@notice Returns the address of the next darknode in the store after the\n given address.", - "id": 2508, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2497, - "modifierName": { - "argumentTypes": null, - "id": 2496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3735:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3735:9:4" - } - ], - "name": "next", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2494, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3701:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3701:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3700:20:4" - }, - "returnParameters": { - "id": 2500, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2499, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2508, - "src": "3753:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3753:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3752:9:4" - }, - "scope": 2682, - "src": "3687:137:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2544, - "nodeType": "Block", - "src": "4005:230:4", - "statements": [ - { - "assignments": [ - 2516 - ], - "declarations": [ - { - "constant": false, - "id": 2516, - "name": "bond", - "nodeType": "VariableDeclaration", - "scope": 2544, - "src": "4015:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4015:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2521, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2517, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4030:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2519, - "indexExpression": { - "argumentTypes": null, - "id": 2518, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4047:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4030:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2520, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4030:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4015:48:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "delete", - "prefix": true, - "src": "4073:35:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2522, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4080:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2524, - "indexExpression": { - "argumentTypes": null, - "id": 2523, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4097:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4080:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2526, - "nodeType": "ExpressionStatement", - "src": "4073:35:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2530, - "name": "darknodes", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2420, - "src": "4136:9:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 2531, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2510, - "src": "4147:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4829_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2527, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5233, - "src": "4118:10:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5233_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 2529, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 5068, - "src": "4118:17:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4829_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 2532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:40:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2533, - "nodeType": "ExpressionStatement", - "src": "4118:40:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2537, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4370, - "src": "4189:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4189:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2539, - "name": "bond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2516, - "src": "4198:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2535, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4176:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "4176:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4176:27:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2541, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4205:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2534, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4168:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4168:60:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2543, - "nodeType": "ExpressionStatement", - "src": "4168:60:4" - } - ] - }, - "documentation": "@notice Removes a darknode from the store and transfers its bond to the\n owner of this contract.", - "id": 2545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2513, - "modifierName": { - "argumentTypes": null, - "id": 2512, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "3995:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3995:9:4" - } - ], - "name": "removeDarknode", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2511, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2510, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2545, - "src": "3966:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2509, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3966:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3965:20:4" - }, - "returnParameters": { - "id": 2514, - "nodeType": "ParameterList", - "parameters": [], - "src": "4005:0:4" - }, - "scope": 2682, - "src": "3942:293:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2588, - "nodeType": "Block", - "src": "4456:298:4", - "statements": [ - { - "assignments": [ - 2555 - ], - "declarations": [ - { - "constant": false, - "id": 2555, - "name": "previousBond", - "nodeType": "VariableDeclaration", - "scope": 2588, - "src": "4466:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2554, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4466:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2560, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2556, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4489:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2558, - "indexExpression": { - "argumentTypes": null, - "id": 2557, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4506:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4489:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2559, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4489:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4466:56:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2562, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4540:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2563, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4556:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4540:28:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64206e6f7420646563726561736564", - "id": 2565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4570:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - }, - "value": "bond not decreased" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_97eff1a15f5a3840065d2b2bec91a8c742bf71d5ec50cd74e0f76c8005ceb766", - "typeString": "literal_string \"bond not decreased\"" - } - ], - "id": 2561, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4532:59:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2567, - "nodeType": "ExpressionStatement", - "src": "4532:59:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2568, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2570, - "indexExpression": { - "argumentTypes": null, - "id": 2569, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2547, - "src": "4618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2571, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "4601:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2572, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4637:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4601:49:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2574, - "nodeType": "ExpressionStatement", - "src": "4601:49:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2578, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4370, - "src": "4681:5:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", - "typeString": "function () view returns (address)" - } - }, - "id": 2579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4681:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2582, - "name": "decreasedBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "4707:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2580, - "name": "previousBond", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4690:12:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7453, - "src": "4690:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 2583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4690:31:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2576, - "name": "ren", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2422, - "src": "4668:3:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RenToken_$2807", - "typeString": "contract RenToken" - } - }, - "id": 2577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 8157, - "src": "4668:12:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 2584, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4668:54:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "626f6e64207472616e73666572206661696c6564", - "id": 2585, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4724:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - }, - "value": "bond transfer failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5cc04940ac6d40db26d0534ed979bd6744dc0f16532d0fa6ea6933afd295512d", - "typeString": "literal_string \"bond transfer failed\"" - } - ], - "id": 2575, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8340, - "src": "4660:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2586, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4660:87:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2587, - "nodeType": "ExpressionStatement", - "src": "4660:87:4" - } - ] - }, - "documentation": "@notice Updates the bond of a darknode. The new bond must be smaller\n than the previous bond of the darknode.", - "id": 2589, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2552, - "modifierName": { - "argumentTypes": null, - "id": 2551, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4446:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4446:9:4" - } - ], - "name": "updateDarknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2550, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2547, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4394:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4394:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2549, - "name": "decreasedBond", - "nodeType": "VariableDeclaration", - "scope": 2589, - "src": "4414:21:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2548, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4414:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4393:43:4" - }, - "returnParameters": { - "id": 2553, - "nodeType": "ParameterList", - "parameters": [], - "src": "4456:0:4" - }, - "scope": 2682, - "src": "4366:388:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2605, - "nodeType": "Block", - "src": "4929:77:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2598, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4939:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2600, - "indexExpression": { - "argumentTypes": null, - "id": 2599, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "4956:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2601, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "4939:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2602, - "name": "deregisteredAt", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2593, - "src": "4985:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4939:60:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2604, - "nodeType": "ExpressionStatement", - "src": "4939:60:4" - } - ] - }, - "documentation": "@notice Updates the deregistration timestamp of a darknode.", - "id": 2606, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2596, - "modifierName": { - "argumentTypes": null, - "id": 2595, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "4919:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4919:9:4" - } - ], - "name": "updateDarknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2591, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4866:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4866:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2593, - "name": "deregisteredAt", - "nodeType": "VariableDeclaration", - "scope": 2606, - "src": "4886:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2592, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4886:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4865:44:4" - }, - "returnParameters": { - "id": 2597, - "nodeType": "ParameterList", - "parameters": [], - "src": "4929:0:4" - }, - "scope": 2682, - "src": "4828:178:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2620, - "nodeType": "Block", - "src": "5160:58:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2615, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5177:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2617, - "indexExpression": { - "argumentTypes": null, - "id": 2616, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2608, - "src": "5194:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5177:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2618, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "owner", - "nodeType": "MemberAccess", - "referencedDeclaration": 2405, - "src": "5177:34:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2614, - "id": 2619, - "nodeType": "Return", - "src": "5170:41:4" - } - ] - }, - "documentation": "@notice Returns the owner of a given darknode.", - "id": 2621, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2611, - "modifierName": { - "argumentTypes": null, - "id": 2610, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5124:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5124:9:4" - } - ], - "name": "darknodeOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2609, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2608, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5090:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2607, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5090:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5089:20:4" - }, - "returnParameters": { - "id": 2614, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2613, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2621, - "src": "5143:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2612, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5143:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5142:17:4" - }, - "scope": 2682, - "src": "5067:151:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2635, - "nodeType": "Block", - "src": "5362:57:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2630, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5379:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2632, - "indexExpression": { - "argumentTypes": null, - "id": 2631, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5379:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bond", - "nodeType": "MemberAccess", - "referencedDeclaration": 2407, - "src": "5379:33:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2629, - "id": 2634, - "nodeType": "Return", - "src": "5372:40:4" - } - ] - }, - "documentation": "@notice Returns the bond of a given darknode.", - "id": 2636, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2626, - "modifierName": { - "argumentTypes": null, - "id": 2625, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5334:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5334:9:4" - } - ], - "name": "darknodeBond", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2624, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2623, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5300:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5300:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5299:20:4" - }, - "returnParameters": { - "id": 2629, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2628, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2636, - "src": "5353:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2627, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5353:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:9:4" - }, - "scope": 2682, - "src": "5278:141:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2650, - "nodeType": "Block", - "src": "5584:65:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2645, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5601:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2647, - "indexExpression": { - "argumentTypes": null, - "id": 2646, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2638, - "src": "5618:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5601:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2648, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "registeredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2409, - "src": "5601:41:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2644, - "id": 2649, - "nodeType": "Return", - "src": "5594:48:4" - } - ] - }, - "documentation": "@notice Returns the registration time of a given darknode.", - "id": 2651, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2641, - "modifierName": { - "argumentTypes": null, - "id": 2640, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5556:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5556:9:4" - } - ], - "name": "darknodeRegisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2639, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2638, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5522:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2637, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5522:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5521:20:4" - }, - "returnParameters": { - "id": 2644, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2643, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2651, - "src": "5575:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2642, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5575:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5574:9:4" - }, - "scope": 2682, - "src": "5492:157:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2665, - "nodeType": "Block", - "src": "5818:67:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2660, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "5835:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2662, - "indexExpression": { - "argumentTypes": null, - "id": 2661, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2653, - "src": "5852:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5835:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2663, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deregisteredAt", - "nodeType": "MemberAccess", - "referencedDeclaration": 2411, - "src": "5835:43:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2659, - "id": 2664, - "nodeType": "Return", - "src": "5828:50:4" - } - ] - }, - "documentation": "@notice Returns the deregistration time of a given darknode.", - "id": 2666, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2656, - "modifierName": { - "argumentTypes": null, - "id": 2655, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "5790:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5790:9:4" - } - ], - "name": "darknodeDeregisteredAt", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2654, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2653, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5756:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2652, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5756:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:20:4" - }, - "returnParameters": { - "id": 2659, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2658, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2666, - "src": "5809:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2657, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5808:9:4" - }, - "scope": 2682, - "src": "5724:161:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2680, - "nodeType": "Block", - "src": "6056:62:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2675, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "6073:16:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Darknode_$2414_storage_$", - "typeString": "mapping(address => struct DarknodeRegistryStore.Darknode storage ref)" - } - }, - "id": 2677, - "indexExpression": { - "argumentTypes": null, - "id": 2676, - "name": "darknodeID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "6090:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6073:28:4", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Darknode_$2414_storage", - "typeString": "struct DarknodeRegistryStore.Darknode storage ref" - } - }, - "id": 2678, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "publicKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 2413, - "src": "6073:38:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage", - "typeString": "bytes storage ref" - } - }, - "functionReturnParameters": 2674, - "id": 2679, - "nodeType": "Return", - "src": "6066:45:4" - } - ] - }, - "documentation": "@notice Returns the encryption public key of a given darknode.", - "id": 2681, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2671, - "modifierName": { - "argumentTypes": null, - "id": 2670, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4380, - "src": "6023:9:4", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6023:9:4" - } - ], - "name": "darknodePublicKey", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2668, - "name": "darknodeID", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "5989:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2667, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5989:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5988:20:4" - }, - "returnParameters": { - "id": 2674, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2673, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2681, - "src": "6042:12:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2672, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6042:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6041:14:4" - }, - "scope": 2682, - "src": "5962:156:4", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2683, - "src": "368:5752:4" - } - ], - "src": "0:6120:4" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -7585,85 +347,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T03:42:13.838Z", - "devdoc": { - "methods": { - "appendDarknode(address,address,uint256,bytes,uint256,uint256)": { - "params": { - "_bond": "The darknode's bond value", - "_darknodeID": "The darknode's ID.", - "_darknodeOwner": "The darknode's owner's address", - "_deregisteredAt": "The time stamp when the darknode is deregistered.", - "_publicKey": "The darknode's public key", - "_registeredAt": "The time stamp when the darknode is registered." - } - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "constructor": { - "params": { - "_VERSION": "A string defining the contract version.", - "_ren": "The address of the RenToken contract." - } - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "appendDarknode(address,address,uint256,bytes,uint256,uint256)": { - "notice": "Instantiates a darknode and appends it to the darknodes linked-list. " - }, - "begin()": { - "notice": "Returns the address of the first darknode in the store" - }, - "constructor": "The contract constructor. ", - "darknodeBond(address)": { - "notice": "Returns the bond of a given darknode." - }, - "darknodeDeregisteredAt(address)": { - "notice": "Returns the deregistration time of a given darknode." - }, - "darknodeOwner(address)": { - "notice": "Returns the owner of a given darknode." - }, - "darknodePublicKey(address)": { - "notice": "Returns the encryption public key of a given darknode." - }, - "darknodeRegisteredAt(address)": { - "notice": "Returns the registration time of a given darknode." - }, - "next(address)": { - "notice": "Returns the address of the next darknode in the store after the given address." - }, - "removeDarknode(address)": { - "notice": "Removes a darknode from the store and transfers its bond to the owner of this contract." - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "updateDarknodeBond(address,uint256)": { - "notice": "Updates the bond of a darknode. The new bond must be smaller than the previous bond of the darknode." - }, - "updateDarknodeDeregisteredAt(address,uint256)": { - "notice": "Updates the deregistration timestamp of a darknode." - } - }, - "notice": "This contract stores data and funds for the DarknodeRegistry contract. The data / fund logic and storage have been separated to improve upgradability." - } + "updatedAt": "2019-06-26T03:42:13.838Z" } \ No newline at end of file diff --git a/build/testnet/DarknodeSlasher.json b/build/testnet/DarknodeSlasher.json index 788193a4..f3579895 100644 --- a/build/testnet/DarknodeSlasher.json +++ b/build/testnet/DarknodeSlasher.json @@ -117,933 +117,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_prover\",\"type\":\"address\"},{\"name\":\"_challenger1\",\"type\":\"address\"},{\"name\":\"_challenger2\",\"type\":\"address\"}],\"name\":\"slash\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"darknodeRegistry\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_darknodeRegistry\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{},\"notice\":\"DarknodeSlasher will become a voting system for darknodes to deregister other misbehaving darknodes. Right now, it is a placeholder.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":\"DarknodeSlasher\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol\":{\"keccak256\":\"0xbf74543437c829efd8b3168c98d115e87ac613800c5cc8af900a0f5c1fb9f8e0\",\"urls\":[\"bzzr://dbd534dccb422ebba8ccae307000efdcc8d058d70744e93ace853ba0d096f365\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistryStore.sol\":{\"keccak256\":\"0x423b0630cad633c8385e457c0762a8d4b2a5028ee2e89af3f112d5f2d3a04022\",\"urls\":[\"bzzr://de7a014c67223932f191f05238df1a37fa3d325dad943787b3506f072af8e444\"]},\"/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol\":{\"keccak256\":\"0x815e7571a0fd9b61f8f8bf693e7891ab78bbf36b20781012ac64c12f56ef36c5\",\"urls\":[\"bzzr://8e02714dc3b3bf491d533506859802a0756b444ba1b06b6ff64184a723f8697b\"]},\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506040516020806104cd8339810180604052602081101561003057600080fd5b5051600080546001600160a01b03191633178082556040516001600160a01b039190911691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600180546001600160a01b0319166001600160a01b0392909216919091179055610423806100aa6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063563bf26414610067578063715018a6146100a15780638da5cb5b146100a95780638f32d59b146100cd5780639e45e0d0146100e9578063f2fde38b146100f1575b600080fd5b61009f6004803603606081101561007d57600080fd5b506001600160a01b038135811691602081013582169160409091013516610117565b005b61009f6101f1565b6100b1610297565b604080516001600160a01b039092168252519081900360200190f35b6100d56102a6565b604080519115158252519081900360200190f35b6100b16102b7565b61009f6004803603602081101561010757600080fd5b50356001600160a01b03166102c6565b61011f6102a6565b6101735760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60015460408051600160e21b63158efc990281526001600160a01b038681166004830152858116602483015284811660448301529151919092169163563bf26491606480830192600092919082900301818387803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b50505050505050565b6101f96102a6565b61024d5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001546001600160a01b031681565b6102ce6102a6565b6103225760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61032b8161032e565b50565b6001600160a01b03811661037657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103d26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a7230582066c840b24a8492e829fec80aa06fcf6fddceb3c18d9407e4e5604f9b773ac7e30029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063563bf26414610067578063715018a6146100a15780638da5cb5b146100a95780638f32d59b146100cd5780639e45e0d0146100e9578063f2fde38b146100f1575b600080fd5b61009f6004803603606081101561007d57600080fd5b506001600160a01b038135811691602081013582169160409091013516610117565b005b61009f6101f1565b6100b1610297565b604080516001600160a01b039092168252519081900360200190f35b6100d56102a6565b604080519115158252519081900360200190f35b6100b16102b7565b61009f6004803603602081101561010757600080fd5b50356001600160a01b03166102c6565b61011f6102a6565b6101735760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60015460408051600160e21b63158efc990281526001600160a01b038681166004830152858116602483015284811660448301529151919092169163563bf26491606480830192600092919082900301818387803b1580156101d457600080fd5b505af11580156101e8573d6000803e3d6000fd5b50505050505050565b6101f96102a6565b61024d5760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6001546001600160a01b031681565b6102ce6102a6565b6103225760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61032b8161032e565b50565b6001600160a01b03811661037657604051600160e51b62461bcd0281526004018080602001828103825260268152602001806103d26026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a7230582066c840b24a8492e829fec80aa06fcf6fddceb3c18d9407e4e5604f9b773ac7e30029", - "sourceMap": "295:397:5:-;;;385:108;8:9:-1;5:2;;;30:1;27;20:12;5:2;385:108:5;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;385:108:5;657:6:35;:19;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;-1:-1:-1;;;;;724:6:35;;;;;657;691:40;;657:6;;691:40;450:16:5;:36;;-1:-1:-1;;;;;;450:36:5;-1:-1:-1;;;;;450:36:5;;;;;;;;;;295:397;;;-1:-1:-1;295:397:5;;", - "deployedSourceMap": "295:397:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;295:397:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;499:191;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;499:191:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;1599:137:35;;;:::i;814:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:35;;;;;;;;;;;;;;1165:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;338:40:5;;;:::i;1885:107:35:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;499:191:5:-;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:16:5;;:59;;;-1:-1:-1;;;;;624:59:5;;-1:-1:-1;;;;;624:59:5;;;;;;;;;;;;;;;;;;;;;;;:16;;;;;:22;;:59;;;;;:16;;:59;;;;;;;:16;;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;624:59:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;624:59:5;;;;499:191;;;:::o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;814:77::-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;338:40:5:-;;;-1:-1:-1;;;;;338:40:5;;:::o;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;2093:225::-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\nimport \"../DarknodeRegistry/DarknodeRegistry.sol\";\n\n/// @notice DarknodeSlasher will become a voting system for darknodes to\n/// deregister other misbehaving darknodes.\n/// Right now, it is a placeholder.\ncontract DarknodeSlasher is Ownable {\n\n DarknodeRegistry public darknodeRegistry;\n\n constructor(DarknodeRegistry _darknodeRegistry) public {\n darknodeRegistry = _darknodeRegistry;\n }\n\n function slash(address _prover, address _challenger1, address _challenger2)\n external\n onlyOwner\n {\n darknodeRegistry.slash(_prover, _challenger1, _challenger2);\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "exportedSymbols": { - "DarknodeSlasher": [ - 2721 - ] - }, - "id": 2722, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2684, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2685, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 7646, - "src": "25:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 2686, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 2391, - "src": "90:50:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2687, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 2688, - "nodeType": "InheritanceSpecifier", - "src": "323:7:5" - } - ], - "contractDependencies": [ - 7645 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeSlasher will become a voting system for darknodes to\n deregister other misbehaving darknodes.\n Right now, it is a placeholder.", - "fullyImplemented": true, - "id": 2721, - "linearizedBaseContracts": [ - 2721, - 7645 - ], - "name": "DarknodeSlasher", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2690, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "338:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2689, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "338:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2699, - "nodeType": "Block", - "src": "440:53:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2695, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2696, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "469:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "450:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "450:36:5" - } - ] - }, - "documentation": null, - "id": 2700, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2700, - "src": "397:34:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2691, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "397:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "396:36:5" - }, - "returnParameters": { - "id": 2694, - "nodeType": "ParameterList", - "parameters": [], - "src": "440:0:5" - }, - "scope": 2721, - "src": "385:108:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "614:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2714, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2715, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2704, - "src": "656:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2716, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "670:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2711, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "624:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1878, - "src": "624:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address) external" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "624:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "624:59:5" - } - ] - }, - "documentation": null, - "id": 2720, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2709, - "modifierName": { - "argumentTypes": null, - "id": 2708, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "600:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "600:9:5" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2702, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "514:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2704, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "531:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2706, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "553:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:61:5" - }, - "returnParameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [], - "src": "614:0:5" - }, - "scope": 2721, - "src": "499:191:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2722, - "src": "295:397:5" - } - ], - "src": "0:693:5" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeSlasher/DarknodeSlasher.sol", - "exportedSymbols": { - "DarknodeSlasher": [ - 2721 - ] - }, - "id": 2722, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2684, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:5" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2685, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 7646, - "src": "25:63:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/DarknodeRegistry/DarknodeRegistry.sol", - "file": "../DarknodeRegistry/DarknodeRegistry.sol", - "id": 2686, - "nodeType": "ImportDirective", - "scope": 2722, - "sourceUnit": 2391, - "src": "90:50:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2687, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "323:7:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 2688, - "nodeType": "InheritanceSpecifier", - "src": "323:7:5" - } - ], - "contractDependencies": [ - 7645 - ], - "contractKind": "contract", - "documentation": "@notice DarknodeSlasher will become a voting system for darknodes to\n deregister other misbehaving darknodes.\n Right now, it is a placeholder.", - "fullyImplemented": true, - "id": 2721, - "linearizedBaseContracts": [ - 2721, - 7645 - ], - "name": "DarknodeSlasher", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 2690, - "name": "darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2721, - "src": "338:40:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2689, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "338:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2699, - "nodeType": "Block", - "src": "440:53:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2697, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2695, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2696, - "name": "_darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2692, - "src": "469:17:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "src": "450:36:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2698, - "nodeType": "ExpressionStatement", - "src": "450:36:5" - } - ] - }, - "documentation": null, - "id": 2700, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2693, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2692, - "name": "_darknodeRegistry", - "nodeType": "VariableDeclaration", - "scope": 2700, - "src": "397:34:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - }, - "typeName": { - "contractScope": null, - "id": 2691, - "name": "DarknodeRegistry", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2390, - "src": "397:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "396:36:5" - }, - "returnParameters": { - "id": 2694, - "nodeType": "ParameterList", - "parameters": [], - "src": "440:0:5" - }, - "scope": 2721, - "src": "385:108:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2719, - "nodeType": "Block", - "src": "614:76:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2714, - "name": "_prover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2702, - "src": "647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2715, - "name": "_challenger1", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2704, - "src": "656:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2716, - "name": "_challenger2", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2706, - "src": "670:12:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 2711, - "name": "darknodeRegistry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2690, - "src": "624:16:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_DarknodeRegistry_$2390", - "typeString": "contract DarknodeRegistry" - } - }, - "id": 2713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "slash", - "nodeType": "MemberAccess", - "referencedDeclaration": 1878, - "src": "624:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address) external" - } - }, - "id": 2717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "624:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2718, - "nodeType": "ExpressionStatement", - "src": "624:59:5" - } - ] - }, - "documentation": null, - "id": 2720, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2709, - "modifierName": { - "argumentTypes": null, - "id": 2708, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "600:9:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "600:9:5" - } - ], - "name": "slash", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2707, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2702, - "name": "_prover", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "514:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2701, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "514:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2704, - "name": "_challenger1", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "531:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "531:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2706, - "name": "_challenger2", - "nodeType": "VariableDeclaration", - "scope": 2720, - "src": "553:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "553:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "513:61:5" - }, - "returnParameters": { - "id": 2710, - "nodeType": "ParameterList", - "parameters": [], - "src": "614:0:5" - }, - "scope": 2721, - "src": "499:191:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 2722, - "src": "295:397:5" - } - ], - "src": "0:693:5" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -1056,25 +130,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T03:42:13.938Z", - "devdoc": { - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - } - } - }, - "userdoc": { - "methods": {}, - "notice": "DarknodeSlasher will become a voting system for darknodes to deregister other misbehaving darknodes. Right now, it is a placeholder." - } + "updatedAt": "2019-06-26T03:42:13.938Z" } \ No newline at end of file diff --git a/build/testnet/RenToken.json b/build/testnet/RenToken.json index ea5c3175..a84566b7 100644 --- a/build/testnet/RenToken.json +++ b/build/testnet/RenToken.json @@ -528,2277 +528,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"INITIAL_SUPPLY\",\"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\":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\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"isPauser\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renouncePauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"addPauser\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":false,\"inputs\":[{\"name\":\"beneficiary\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferTokens\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Paused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"Unpaused\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"account\",\"type\":\"address\"}],\"name\":\"PauserRemoved\",\"type\":\"event\"},{\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"burn(uint256)\":{\"details\":\"Destoys `amount` tokens from the caller. * See `ERC20._burn`.\"},\"burnFrom(address,uint256)\":{\"details\":\"See `ERC20._burnFrom`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pause()\":{\"details\":\"Called by a pauser to pause, triggers stopped state.\"},\"paused()\":{\"details\":\"Returns true if the contract is paused, and false otherwise.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unpause()\":{\"details\":\"Called by a pauser to unpause, returns to normal state.\"}}},\"userdoc\":{\"methods\":{\"constructor\":\"The RenToken Constructor.\"}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":\"RenToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol\":{\"keccak256\":\"0x574c593875a7afc210e709573a4d46d6ad6ea60d348ade04692149aae68a85da\",\"urls\":[\"bzzr://6216d6c45babda33bf82905fd7384368d9529b6e572f435c2a217bd7634467e9\"]},\"openzeppelin-solidity/contracts/access/Roles.sol\":{\"keccak256\":\"0xb002c378d7b82a101bd659c341518953ca0919d342c0a400196982c0e7e7bcdb\",\"urls\":[\"bzzr://bd34c1ce05b5b2b3a62fc02e160f6805b1cadd476854664f433c685b2fda8dad\"]},\"openzeppelin-solidity/contracts/access/roles/PauserRole.sol\":{\"keccak256\":\"0xf6826c684d51ca28db5293ce11a54c5cca1c757b6cd32b87613833c65086f995\",\"urls\":[\"bzzr://01b2756ab5b41b1d7ccadfeac53fbdce9c889263f1e011329c300c5fa3fda65f\"]},\"openzeppelin-solidity/contracts/lifecycle/Pausable.sol\":{\"keccak256\":\"0x609f8cb524cd6b502624c79c099ec2fc6f23eef57b5c38e28efd82490875f37e\",\"urls\":[\"bzzr://46ee461a64298ef418bd100df1301355f4dc9ffeb06fe7a39aaf98d45c0bf988\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0xa5ebf3344a36eb60e723e0764d85251c496e15e4b2d737b56415502b559a1765\",\"urls\":[\"bzzr://68812cb0a1d373d12c6986f5a9314c9bae7891a07a0e301d2317fcf409102f54\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\":{\"keccak256\":\"0xc4973487824e5855e78e27d685b387566df52ea4b0854ba60b8703b533de47d4\",\"urls\":[\"bzzr://299d2f2c37a1b0cc8b15927fc516cc7f8a8f48e246512b3b3880bd3e4f0220d4\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b50604080518082018252600e81527f52657075626c696320546f6b656e00000000000000000000000000000000000060208083019190915282518084018452600381527f52454e000000000000000000000000000000000000000000000000000000000091810191909152600080546001600160a01b03191633178082559351929391926012926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a38251620000dd90600190602086019062000460565b508151620000f390600290602085019062000460565b506003805460ff191660ff92909216919091179055506200011d9050336200014c602090811b901c565b6008805460ff1916905562000146336b033b2e3c9fd0803ce80000006200019e602090811b901c565b62000505565b62000167816007620002bd60201b620013531790919060201c565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b6001600160a01b0382166200021457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b62000230816006546200036160201b6200128c1790919060201c565b6006556001600160a01b038216600090815260046020908152604090912054620002659183906200128c62000361821b17901c565b6001600160a01b03831660008181526004602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b620002cf8282620003dd60201b60201c565b156200033c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600082820183811015620003d657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006001600160a01b03821662000440576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018062001a606022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004a357805160ff1916838001178555620004d3565b82800160010185558215620004d3579182015b82811115620004d3578251825591602001919060010190620004b6565b50620004e1929150620004e5565b5090565b6200050291905b80821115620004e15760008155600101620004ec565b90565b61154b80620005156000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780638f32d59b11610097578063a9059cbb11610071578063a9059cbb1461041c578063bec3fa1714610448578063dd62ed3e14610474578063f2fde38b146104a257610173565b80638f32d59b146103e057806395d89b41146103e8578063a457c2d7146103f057610173565b806370a0823114610334578063715018a61461035a57806379cc67901461036257806382dc1ec41461038e5780638456cb59146103b45780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102ab5780633f4ba83a146102d757806342966c68146102e157806346fbf68e146102fe5780635c975abb146103245780636ef8d66d1461032c57610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd1461023557806323b872dd1461024f5780632ff2e9dc14610285578063313ce5671461028d575b600080fd5b6101806104c8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b03813516906020013561055d565b604080519115158252519081900360200190f35b61023d6105c2565b60408051918252519081900360200190f35b6102216004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b61023d61062f565b61029561063f565b6040805160ff9092168252519081900360200190f35b610221600480360360408110156102c157600080fd5b506001600160a01b038135169060200135610648565b6102df6106a6565b005b6102df600480360360208110156102f757600080fd5b5035610786565b6102216004803603602081101561031457600080fd5b50356001600160a01b0316610793565b6102216107ac565b6102df6107b5565b61023d6004803603602081101561034a57600080fd5b50356001600160a01b03166107c0565b6102df6107db565b6102df6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610881565b6102df600480360360208110156103a457600080fd5b50356001600160a01b031661088f565b6102df6108df565b6103c46109b9565b604080516001600160a01b039092168252519081900360200190f35b6102216109c8565b6101806109d9565b6102216004803603604081101561040657600080fd5b506001600160a01b038135169060200135610a37565b6102216004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a95565b6102216004803603604081101561045e57600080fd5b506001600160a01b038135169060200135610af3565b61023d6004803603604081101561048a57600080fd5b506001600160a01b0381358116916020013516610bb2565b6102df600480360360208110156104b857600080fd5b50356001600160a01b0316610bdd565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b60085460009060ff16156105b15760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610c42565b9392505050565b60065490565b60085460009060ff161561061c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610627848484610c58565b949350505050565b6b033b2e3c9fd0803ce800000081565b60035460ff1690565b60085460009060ff161561069c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610caf565b6106af33610793565b6106ed57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff166107475760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6008805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6107903382610ceb565b50565b60006107a660078363ffffffff610dc916565b92915050565b60085460ff1690565b6107be33610e33565b565b6001600160a01b031660009081526004602052604090205490565b6107e36109c8565b6108375760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61088b8282610e7b565b5050565b61089833610793565b6108d657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b61079081610ec0565b6108e833610793565b61092657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff16156109775760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6008805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b60085460009060ff1615610a8b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f08565b60085460009060ff1615610ae95760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f44565b6000610afd6109c8565b610b515760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008211610b5e57600080fd5b610b69338484610f4d565b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610be56109c8565b610c395760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61079081611097565b6000610c4f33848461113a565b50600192915050565b6000610c65848484610f4d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610ca5918691610ca0908663ffffffff61122c16565b61113a565b5060019392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61128c16565b6001600160a01b038216610d3357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114b66021913960400191505060405180910390fd5b600654610d46908263ffffffff61122c16565b6006556001600160a01b038216600090815260046020526040902054610d72908263ffffffff61122c16565b6001600160a01b0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610e1357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114946022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610e4460078263ffffffff6112e916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e858282610ceb565b6001600160a01b03821660009081526005602090815260408083203380855292529091205461088b918491610ca0908563ffffffff61122c16565b610ed160078263ffffffff61135316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61122c16565b6000610c4f3384845b6001600160a01b038316610f9557604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114d76025913960400191505060405180910390fd5b6001600160a01b038216610fdd57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806113d86023913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054611006908263ffffffff61122c16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461103b908263ffffffff61128c16565b6001600160a01b0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166110df57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061142b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661118257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114fc6024913960400191505060405180910390fd5b6001600160a01b0382166111ca57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156112865760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156105bb5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6112f38282610dc9565b61133157604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114736021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61135d8282610dc9565b156113b25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820715382a57d16cd2d1255e6b4305cc3f37811602a240b798963b059cd77f3899b0029526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c806370a08231116100de5780638f32d59b11610097578063a9059cbb11610071578063a9059cbb1461041c578063bec3fa1714610448578063dd62ed3e14610474578063f2fde38b146104a257610173565b80638f32d59b146103e057806395d89b41146103e8578063a457c2d7146103f057610173565b806370a0823114610334578063715018a61461035a57806379cc67901461036257806382dc1ec41461038e5780638456cb59146103b45780638da5cb5b146103bc57610173565b8063395093511161013057806339509351146102ab5780633f4ba83a146102d757806342966c68146102e157806346fbf68e146102fe5780635c975abb146103245780636ef8d66d1461032c57610173565b806306fdde0314610178578063095ea7b3146101f557806318160ddd1461023557806323b872dd1461024f5780632ff2e9dc14610285578063313ce5671461028d575b600080fd5b6101806104c8565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ba5781810151838201526020016101a2565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102216004803603604081101561020b57600080fd5b506001600160a01b03813516906020013561055d565b604080519115158252519081900360200190f35b61023d6105c2565b60408051918252519081900360200190f35b6102216004803603606081101561026557600080fd5b506001600160a01b038135811691602081013590911690604001356105c8565b61023d61062f565b61029561063f565b6040805160ff9092168252519081900360200190f35b610221600480360360408110156102c157600080fd5b506001600160a01b038135169060200135610648565b6102df6106a6565b005b6102df600480360360208110156102f757600080fd5b5035610786565b6102216004803603602081101561031457600080fd5b50356001600160a01b0316610793565b6102216107ac565b6102df6107b5565b61023d6004803603602081101561034a57600080fd5b50356001600160a01b03166107c0565b6102df6107db565b6102df6004803603604081101561037857600080fd5b506001600160a01b038135169060200135610881565b6102df600480360360208110156103a457600080fd5b50356001600160a01b031661088f565b6102df6108df565b6103c46109b9565b604080516001600160a01b039092168252519081900360200190f35b6102216109c8565b6101806109d9565b6102216004803603604081101561040657600080fd5b506001600160a01b038135169060200135610a37565b6102216004803603604081101561043257600080fd5b506001600160a01b038135169060200135610a95565b6102216004803603604081101561045e57600080fd5b506001600160a01b038135169060200135610af3565b61023d6004803603604081101561048a57600080fd5b506001600160a01b0381358116916020013516610bb2565b6102df600480360360208110156104b857600080fd5b50356001600160a01b0316610bdd565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b820191906000526020600020905b81548152906001019060200180831161053657829003601f168201915b5050505050905090565b60085460009060ff16156105b15760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610c42565b9392505050565b60065490565b60085460009060ff161561061c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b610627848484610c58565b949350505050565b6b033b2e3c9fd0803ce800000081565b60035460ff1690565b60085460009060ff161561069c5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610caf565b6106af33610793565b6106ed57604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff166107475760408051600160e51b62461bcd02815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015290519081900360640190fd5b6008805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6107903382610ceb565b50565b60006107a660078363ffffffff610dc916565b92915050565b60085460ff1690565b6107be33610e33565b565b6001600160a01b031660009081526004602052604090205490565b6107e36109c8565b6108375760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b61088b8282610e7b565b5050565b61089833610793565b6108d657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b61079081610ec0565b6108e833610793565b61092657604051600160e51b62461bcd0281526004018080602001828103825260308152602001806113fb6030913960400191505060405180910390fd5b60085460ff16156109775760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6008805460ff191660011790556040805133815290517f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2589181900360200190a1565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b60028054604080516020601f60001961010060018716150201909416859004938401819004810282018101909252828152606093909290918301828280156105535780601f1061052857610100808354040283529160200191610553565b60085460009060ff1615610a8b5760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f08565b60085460009060ff1615610ae95760408051600160e51b62461bcd0281526020600482015260106024820152600160821b6f14185d5cd8589b194e881c185d5cd95902604482015290519081900360640190fd5b6105bb8383610f44565b6000610afd6109c8565b610b515760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b60008211610b5e57600080fd5b610b69338484610f4d565b6040805183815290516001600160a01b0385169133917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b610be56109c8565b610c395760408051600160e51b62461bcd02815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61079081611097565b6000610c4f33848461113a565b50600192915050565b6000610c65848484610f4d565b6001600160a01b038416600090815260056020908152604080832033808552925290912054610ca5918691610ca0908663ffffffff61122c16565b61113a565b5060019392505050565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61128c16565b6001600160a01b038216610d3357604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114b66021913960400191505060405180910390fd5b600654610d46908263ffffffff61122c16565b6006556001600160a01b038216600090815260046020526040902054610d72908263ffffffff61122c16565b6001600160a01b0383166000818152600460209081526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a35050565b60006001600160a01b038216610e1357604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114946022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b610e4460078263ffffffff6112e916565b6040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b610e858282610ceb565b6001600160a01b03821660009081526005602090815260408083203380855292529091205461088b918491610ca0908563ffffffff61122c16565b610ed160078263ffffffff61135316565b6040516001600160a01b038216907f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f890600090a250565b3360008181526005602090815260408083206001600160a01b03871684529091528120549091610c4f918590610ca0908663ffffffff61122c16565b6000610c4f3384845b6001600160a01b038316610f9557604051600160e51b62461bcd0281526004018080602001828103825260258152602001806114d76025913960400191505060405180910390fd5b6001600160a01b038216610fdd57604051600160e51b62461bcd0281526004018080602001828103825260238152602001806113d86023913960400191505060405180910390fd5b6001600160a01b038316600090815260046020526040902054611006908263ffffffff61122c16565b6001600160a01b03808516600090815260046020526040808220939093559084168152205461103b908263ffffffff61128c16565b6001600160a01b0380841660008181526004602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b6001600160a01b0381166110df57604051600160e51b62461bcd02815260040180806020018281038252602681526020018061142b6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03831661118257604051600160e51b62461bcd0281526004018080602001828103825260248152602001806114fc6024913960400191505060405180910390fd5b6001600160a01b0382166111ca57604051600160e51b62461bcd0281526004018080602001828103825260228152602001806114516022913960400191505060405180910390fd5b6001600160a01b03808416600081815260056020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000828211156112865760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000828201838110156105bb5760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6112f38282610dc9565b61133157604051600160e51b62461bcd0281526004018080602001828103825260218152602001806114736021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b61135d8282610dc9565b156113b25760408051600160e51b62461bcd02815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff1916600117905556fe45524332303a207472616e7366657220746f20746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652050617573657220726f6c654f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820715382a57d16cd2d1255e6b4305cc3f37811602a240b798963b059cd77f3899b0029", - "sourceMap": "306:872:6:-;;;655:144;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;715:5:6;;;;;;;;;;;;;;;;;;;;722:7;;;;;;;;;;;;;;;;;;-1:-1:-1;657:19:35;;-1:-1:-1;;;;;;657:19:35;666:10;657:19;;;;691:40;;715:5:6;;722:7;;521:2;;-1:-1:-1;;;;;724:6:35;;-1:-1:-1;691:40:35;;-1:-1:-1;;691:40:35;504:12:38;;;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;526:16:38;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:38;:20;;-1:-1:-1;;552:20:38;;;;;;;;;;;;-1:-1:-1;275:22:30;;-1:-1:-1;286:10:30;275;;;;;:22;;:::i;:::-;975:7:32;:15;;-1:-1:-1;;975:15:32;;;759:33:6;765:10;571:35;759:5;;;;;:33;;:::i;:::-;306:872;;737:119:30;793:21;806:7;793:8;:12;;;;;;:21;;;;:::i;:::-;829:20;;-1:-1:-1;;;;;829:20:30;;;;;;;;737:119;:::o;5771:302:36:-;-1:-1:-1;;;;;5846:21:36;;5838:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:24;5946:6;5929:12;;:16;;;;;;:24;;;;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:36;;;;;;:9;:18;;;;;;;;;:30;;6007:6;;5984:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;5963:18:36;;;;;;:9;:18;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;;;6029:37;;;;;;;;;;5771:302;;:::o;260:175:29:-;337:18;341:4;347:7;337:3;;;:18;;:::i;:::-;336:19;328:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:29;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:29;424:4;401:27;;;260:175::o;834:176:34:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:34:o;779:200:29:-;851:4;-1:-1:-1;;;;;875:21:29;;867:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:29;:11;:20;;;;;;;;;;;;;;;779:200::o;306:872:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;306:872:6;;;-1:-1:-1;306:872:6;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "306:872:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;306:872:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:38;;;:::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;644:81:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;516:138:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;516:138:39;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89:36;;;:::i;:::-;;;;;;;;;;;;;;;;352:158:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;352:158:39;;;;;;;;;;;;;;;;;:::i;530:76:6:-;;;:::i;1478:81:38:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;660:165:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;660:165:39;;;;;;;;:::i;1852:115:32:-;;;:::i;:::-;;397:79:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;397:79:37;;:::i;447:107:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;447:107:30;-1:-1:-1;;;;;447:107:30;;:::i;1092:76:32:-;;;:::i;656:75:30:-;;;:::i;1661:108:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:36;-1:-1:-1;;;;;1661:108:36;;:::i;1599:137:35:-;;;:::i;533:101:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;533:101:37;;;;;;;;:::i;560:90:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;560:90:30;-1:-1:-1;;;;;560:90:30;;:::i;1649:113:32:-;;;:::i;814:77:35:-;;;:::i;:::-;;;;-1:-1:-1;;;;;814:77:35;;;;;;;;;;;;;;1165:90;;;:::i;838:85:38:-;;;:::i;831:175:39:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;831:175:39;;;;;;;;:::i;216:130::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;216:130:39;;;;;;;;:::i;805:371:6:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;805:371:6;;;;;;;;:::i;2183:132:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:36;;;;;;;;;;:::i;1885:107:35:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:35;-1:-1:-1;;;;;1885:107:35;;:::i;644:81:38:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;516:138:39:-;1321:7:32;;595:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;618:29:39;632:7;641:5;618:13;:29::i;:::-;611:36;516:138;-1:-1:-1;;;516:138:39:o;1514:89:36:-;1584:12;;1514:89;:::o;352:158:39:-;1321:7:32;;445:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;468:35:39;487:4;493:2;497:5;468:18;:35::i;:::-;461:42;352:158;-1:-1:-1;;;;352:158:39:o;530:76:6:-;571:35;530:76;:::o;1478:81:38:-;1543:9;;;;1478:81;:::o;660:165:39:-;1321:7:32;;751:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;774:44:39;798:7;807:10;774:23;:44::i;1852:115:32:-;350:20:30;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1512:7:32;;;;1504:40;;;;;-1:-1:-1;;;;;1504:40:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;1910:7;:15;;-1:-1:-1;;1910:15:32;;;1940:20;;;1949:10;1940:20;;;;;;;;;;;;;1852:115::o;397:79:37:-;444:25;450:10;462:6;444:5;:25::i;:::-;397:79;:::o;447:107:30:-;503:4;526:21;:8;539:7;526:21;:12;:21;:::i;:::-;519:28;447:107;-1:-1:-1;;447:107:30:o;1092:76:32:-;1154:7;;;;1092:76;:::o;656:75:30:-;699:25;713:10;699:13;:25::i;:::-;656:75::o;1661:108:36:-;-1:-1:-1;;;;;1744:18:36;1718:7;1744:18;;;:9;:18;;;;;;;1661:108::o;1599:137:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:35;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:35;;;1599:137::o;533:101:37:-;601:26;611:7;620:6;601:9;:26::i;:::-;533:101;;:::o;560:90:30:-;350:20;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;624:19;635:7;624:10;:19::i;1649:113:32:-;350:20:30;359:10;350:8;:20::i;:::-;342:81;;;;-1:-1:-1;;;;;342:81:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:7:32;;;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;1708:7;:14;;-1:-1:-1;;1708:14:32;1718:4;1708:14;;;1737:18;;;1744:10;1737:18;;;;;;;;;;;;;1649:113::o;814:77:35:-;852:7;878:6;-1:-1:-1;;;;;878:6:35;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:35;1228:10;:20;;1165:90::o;838:85:38:-;909:7;902:14;;;;;;;-1:-1:-1;;902:14:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;831:175:39;1321:7:32;;927:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;950:49:39;974:7;983:15;950:23;:49::i;216:130::-;1321:7:32;;291:4:39;;1321:7:32;;1320:8;1312:37;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;-1:-1:-1;;;;;1312:37:32;;;;;;;;;;;;;;;314:25:39;329:2;333:5;314:14;:25::i;805:371:6:-;892:4;1018:9:35;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1036:1:6;1027:6;:10;1019:19;;;;;;1049:42;1059:10;1071:11;1084:6;1049:9;:42::i;:::-;1106:41;;;;;;;;-1:-1:-1;;;;;1106:41:6;;;1115:10;;1106:41;;;;;;;;;-1:-1:-1;1165:4:6;805:371;;;;:::o;2183:132:36:-;-1:-1:-1;;;;;2281:18:36;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1885:107:35:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;2453:145:36:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:36;2453:145;;;;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:36;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:36;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:36;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;6392:300::-;-1:-1:-1;;;;;6466:21:36;;6458:67;;;;-1:-1:-1;;;;;6458:67:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:36;;;;;;:9;:18;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:36;;;;;;:9;:18;;;;;;;;:50;;;;6649:36;;;;;;;6584:18;;6649:36;;;;;;;;;;;6392:300;;:::o;779:200:29:-;851:4;-1:-1:-1;;;;;875:21:29;;867:68;;;;-1:-1:-1;;;;;867:68:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;952:20:29;:11;:20;;;;;;;;;;;;;;;779:200::o;862:127:30:-;921:24;:8;937:7;921:24;:15;:24;:::i;:::-;960:22;;-1:-1:-1;;;;;960:22:30;;;;;;;;862:127;:::o;7623:185:36:-;7694:22;7700:7;7709:6;7694:5;:22::i;:::-;-1:-1:-1;;;;;7756:20:36;;;;;;:11;:20;;;;;;;;7744:10;7756:32;;;;;;;;;7726:75;;7735:7;;7756:44;;7793:6;7756:44;:36;:44;:::i;737:119:30:-;793:21;:8;806:7;793:21;:12;:21;:::i;:::-;829:20;;-1:-1:-1;;;;;829:20:30;;;;;;;;737:119;:::o;4392:213:36:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:36;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;5079:422;-1:-1:-1;;;;;5176:20:36;;5168:70;;;;-1:-1:-1;;;;;5168:70:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:36;;5248:71;;;;-1:-1:-1;;;;;5248:71:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:36;;;;;;:9;:17;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:36;;;;;;;:9;:17;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:36;;;;;;;:9;:20;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;2093:225:35:-;-1:-1:-1;;;;;2166:22:35;;2158:73;;;;-1:-1:-1;;;;;2158:73:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:35;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:35;-1:-1:-1;;;;;2294:17:35;;;;;;;;;;2093:225::o;7117:329:36:-;-1:-1:-1;;;;;7209:19:36;;7201:68;;;;-1:-1:-1;;;;;7201:68:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:36;;7279:68;;;;-1:-1:-1;;;;;7279:68:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:36;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;1274:179:34:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:34;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:34;;;;;;;;;;;;;;;;;;;;;;;;;;;510:180:29;589:18;593:4;599:7;589:3;:18::i;:::-;581:64;;;;-1:-1:-1;;;;;581:64:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;655:20:29;678:5;655:20;;;;;;;;;;;:28;;-1:-1:-1;;655:28:29;;;510:180::o;260:175::-;337:18;341:4;347:7;337:3;:18::i;:::-;336:19;328:63;;;;;-1:-1:-1;;;;;328:63:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;401:20:29;:11;:20;;;;;;;;;;;:27;;-1:-1:-1;;401:27:29;424:4;401:27;;;260:175::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\";\n\ncontract RenToken is Ownable, ERC20Detailed, ERC20Pausable, ERC20Burnable {\n\n string private constant _name = \"Republic Token\";\n string private constant _symbol = \"REN\";\n uint8 private constant _decimals = 18;\n\n uint256 public constant INITIAL_SUPPLY = 1000000000 * 10**uint256(_decimals);\n\n /// @notice The RenToken Constructor.\n constructor() ERC20Burnable() ERC20Pausable() ERC20Detailed(_name, _symbol, _decimals) public {\n _mint(msg.sender, INITIAL_SUPPLY);\n }\n\n function transferTokens(address beneficiary, uint256 amount) public onlyOwner returns (bool) {\n // Note: The deployed version has no revert reason\n /* solium-disable-next-line error-reason */\n require(amount > 0);\n\n _transfer(msg.sender, beneficiary, amount);\n emit Transfer(msg.sender, beneficiary, amount);\n\n return true;\n }\n}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "exportedSymbols": { - "RenToken": [ - 2807 - ] - }, - "id": 2808, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2723, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2724, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7646, - "src": "25:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2725, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8132, - "src": "89:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "id": 2726, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8234, - "src": "161:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "id": 2727, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8074, - "src": "233:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2728, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "327:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 2729, - "nodeType": "InheritanceSpecifier", - "src": "327:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2730, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8131, - "src": "336:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$8131", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2731, - "nodeType": "InheritanceSpecifier", - "src": "336:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2732, - "name": "ERC20Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8233, - "src": "351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Pausable_$8233", - "typeString": "contract ERC20Pausable" - } - }, - "id": 2733, - "nodeType": "InheritanceSpecifier", - "src": "351:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2734, - "name": "ERC20Burnable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8073, - "src": "366:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Burnable_$8073", - "typeString": "contract ERC20Burnable" - } - }, - "id": 2735, - "nodeType": "InheritanceSpecifier", - "src": "366:13:6" - } - ], - "contractDependencies": [ - 7167, - 7332, - 7645, - 8042, - 8073, - 8131, - 8233, - 8302 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2807, - "linearizedBaseContracts": [ - 2807, - 8073, - 8233, - 7332, - 7167, - 8042, - 8131, - 8302, - 7645 - ], - "name": "RenToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2738, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "387:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "387:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52657075626c696320546f6b656e", - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "419:16:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c6ec46181aa7e50449c1e0380e9046c227fda9fd0b9c20a72f5ec058938b03", - "typeString": "literal_string \"Republic Token\"" - }, - "value": "Republic Token" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2741, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "441:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2739, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52454e", - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f3045e2a4127a16411506ed3ee0d680edc88abec4ec54f5803cb81605dbdf79", - "typeString": "literal_string \"REN\"" - }, - "value": "REN" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2744, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "486:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2742, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "521:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2753, - "name": "INITIAL_SUPPLY", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "530:76:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "530:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030303030", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:10:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1000000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "596:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "584:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "571:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 2771, - "nodeType": "Block", - "src": "749:50:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "765:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2768, - "name": "INITIAL_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2753, - "src": "777:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2765, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7928, - "src": "759:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "759:33:6" - } - ] - }, - "documentation": "@notice The RenToken Constructor.", - "id": 2772, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [], - "id": 2756, - "modifierName": { - "argumentTypes": null, - "id": 2755, - "name": "ERC20Burnable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8073, - "src": "669:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Burnable_$8073_$", - "typeString": "type(contract ERC20Burnable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:15:6" - }, - { - "arguments": [], - "id": 2758, - "modifierName": { - "argumentTypes": null, - "id": 2757, - "name": "ERC20Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "685:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Pausable_$8233_$", - "typeString": "type(contract ERC20Pausable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "685:15:6" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2738, - "src": "715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2761, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "722:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "731:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2759, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "701:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$8131_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "701:40:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2754, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:2:6" - }, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:6" - }, - "scope": 2807, - "src": "655:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2805, - "nodeType": "Block", - "src": "898:278:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2784, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1027:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1036:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1027:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8339, - "src": "1019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1019:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2788, - "nodeType": "ExpressionStatement", - "src": "1019:19:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "1059:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1071:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1084:6:6", - "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": 2789, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7885, - "src": "1049:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1049:42:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2795, - "nodeType": "ExpressionStatement", - "src": "1049:42:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "1115:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1115:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2799, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1127:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2800, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1140:6:6", - "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": 2796, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8293, - "src": "1106:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1106:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "EmitStatement", - "src": "1101:46:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1165:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2782, - "id": 2804, - "nodeType": "Return", - "src": "1158:11:6" - } - ] - }, - "documentation": null, - "id": 2806, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2779, - "modifierName": { - "argumentTypes": null, - "id": 2778, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "873:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "873:9:6" - } - ], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2774, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "829:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2776, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "850:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "828:37:6" - }, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "892:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2780, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "892:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:6:6" - }, - "scope": 2807, - "src": "805:371:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2808, - "src": "306:872:6" - } - ], - "src": "0:1179:6" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/RenToken/RenToken.sol", - "exportedSymbols": { - "RenToken": [ - 2807 - ] - }, - "id": 2808, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2723, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:6" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2724, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 7646, - "src": "25:63:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2725, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8132, - "src": "89:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Pausable.sol", - "id": 2726, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8234, - "src": "161:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol", - "id": 2727, - "nodeType": "ImportDirective", - "scope": 2808, - "sourceUnit": 8074, - "src": "233:71:6", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2728, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7645, - "src": "327:7:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7645", - "typeString": "contract Ownable" - } - }, - "id": 2729, - "nodeType": "InheritanceSpecifier", - "src": "327:7:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2730, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8131, - "src": "336:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$8131", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2731, - "nodeType": "InheritanceSpecifier", - "src": "336:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2732, - "name": "ERC20Pausable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8233, - "src": "351:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Pausable_$8233", - "typeString": "contract ERC20Pausable" - } - }, - "id": 2733, - "nodeType": "InheritanceSpecifier", - "src": "351:13:6" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2734, - "name": "ERC20Burnable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 8073, - "src": "366:13:6", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Burnable_$8073", - "typeString": "contract ERC20Burnable" - } - }, - "id": 2735, - "nodeType": "InheritanceSpecifier", - "src": "366:13:6" - } - ], - "contractDependencies": [ - 7167, - 7332, - 7645, - 8042, - 8073, - 8131, - 8233, - 8302 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2807, - "linearizedBaseContracts": [ - 2807, - 8073, - 8233, - 7332, - 7167, - 8042, - 8131, - 8302, - 7645 - ], - "name": "RenToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 2738, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "387:48:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2736, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "387:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52657075626c696320546f6b656e", - "id": 2737, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "419:16:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c6ec46181aa7e50449c1e0380e9046c227fda9fd0b9c20a72f5ec058938b03", - "typeString": "literal_string \"Republic Token\"" - }, - "value": "Republic Token" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2741, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "441:39:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string" - }, - "typeName": { - "id": 2739, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "441:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "52454e", - "id": 2740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "475:5:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4f3045e2a4127a16411506ed3ee0d680edc88abec4ec54f5803cb81605dbdf79", - "typeString": "literal_string \"REN\"" - }, - "value": "REN" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2744, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "486:37:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2742, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "486:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3138", - "id": 2743, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "521:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 2753, - "name": "INITIAL_SUPPLY", - "nodeType": "VariableDeclaration", - "scope": 2807, - "src": "530:76:6", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "530:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "31303030303030303030", - "id": 2746, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "571:10:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000_by_1", - "typeString": "int_const 1000000000" - }, - "value": "1000000000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2751, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 2747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "584:2:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2749, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "596:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 2748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "588:7:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "588:18:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "584:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "571:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "visibility": "public" - }, - { - "body": { - "id": 2771, - "nodeType": "Block", - "src": "749:50:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2766, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "765:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "765:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2768, - "name": "INITIAL_SUPPLY", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2753, - "src": "777:14:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2765, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7928, - "src": "759:5:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "759:33:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2770, - "nodeType": "ExpressionStatement", - "src": "759:33:6" - } - ] - }, - "documentation": "@notice The RenToken Constructor.", - "id": 2772, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [], - "id": 2756, - "modifierName": { - "argumentTypes": null, - "id": 2755, - "name": "ERC20Burnable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8073, - "src": "669:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Burnable_$8073_$", - "typeString": "type(contract ERC20Burnable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "669:15:6" - }, - { - "arguments": [], - "id": 2758, - "modifierName": { - "argumentTypes": null, - "id": 2757, - "name": "ERC20Pausable", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "685:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Pausable_$8233_$", - "typeString": "type(contract ERC20Pausable)" - } - }, - "nodeType": "ModifierInvocation", - "src": "685:15:6" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 2760, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2738, - "src": "715:5:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2761, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2741, - "src": "722:7:6", - "typeDescriptions": { - "typeIdentifier": "t_string_memory", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2762, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2744, - "src": "731:9:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2763, - "modifierName": { - "argumentTypes": null, - "id": 2759, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8131, - "src": "701:13:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$8131_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "701:40:6" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2754, - "nodeType": "ParameterList", - "parameters": [], - "src": "666:2:6" - }, - "returnParameters": { - "id": 2764, - "nodeType": "ParameterList", - "parameters": [], - "src": "749:0:6" - }, - "scope": 2807, - "src": "655:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2805, - "nodeType": "Block", - "src": "898:278:6", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2784, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1027:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1036:1:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1027:10:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2783, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8339, - 8340 - ], - "referencedDeclaration": 8339, - "src": "1019:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1019:19:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2788, - "nodeType": "ExpressionStatement", - "src": "1019:19:6" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2790, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "1059:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1059:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2792, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1071:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2793, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1084:6:6", - "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": 2789, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7885, - "src": "1049:9:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2794, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1049:42:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2795, - "nodeType": "ExpressionStatement", - "src": "1049:42:6" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2797, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8336, - "src": "1115:3:6", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2798, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1115:10:6", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2799, - "name": "beneficiary", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2774, - "src": "1127:11:6", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2800, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2776, - "src": "1140:6:6", - "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": 2796, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8293, - "src": "1106:8:6", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1106:41:6", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "EmitStatement", - "src": "1101:46:6" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2803, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1165:4:6", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 2782, - "id": 2804, - "nodeType": "Return", - "src": "1158:11:6" - } - ] - }, - "documentation": null, - "id": 2806, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2779, - "modifierName": { - "argumentTypes": null, - "id": 2778, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7578, - "src": "873:9:6", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "873:9:6" - } - ], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2777, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2774, - "name": "beneficiary", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "829:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2773, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "829:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2776, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "850:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2775, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "850:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "828:37:6" - }, - "returnParameters": { - "id": 2782, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2781, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2806, - "src": "892:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2780, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "892:4:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "891:6:6" - }, - "scope": 2807, - "src": "805:371:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2808, - "src": "306:872:6" - } - ], - "src": "0:1179:6" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2811,59 +541,5 @@ } }, "schemaVersion": "3.0.9", - "updatedAt": "2019-06-26T03:42:13.669Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "burn(uint256)": { - "details": "Destoys `amount` tokens from the caller. * See `ERC20._burn`." - }, - "burnFrom(address,uint256)": { - "details": "See `ERC20._burnFrom`." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "pause()": { - "details": "Called by a pauser to pause, triggers stopped state." - }, - "paused()": { - "details": "Returns true if the contract is paused, and false otherwise." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "unpause()": { - "details": "Called by a pauser to unpause, returns to normal state." - } - } - }, - "userdoc": { - "methods": { - "constructor": "The RenToken Constructor." - } - } + "updatedAt": "2019-06-26T03:42:13.669Z" } \ No newline at end of file diff --git a/build/testnet/ShifterRegistry.json b/build/testnet/ShifterRegistry.json index 8f6909b1..42c6a84d 100644 --- a/build/testnet/ShifterRegistry.json +++ b/build/testnet/ShifterRegistry.json @@ -308,12729 +308,7 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"name\":\"getShifterByToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"name\":\"getShifterBySymbol\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getShiftedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"setShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"name\":\"removeShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"name\":\"_newShifterAddress\",\"type\":\"address\"}],\"name\":\"updateShifter\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_start\",\"type\":\"address\"},{\"name\":\"_count\",\"type\":\"uint256\"}],\"name\":\"getShifters\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"name\":\"getTokenBySymbol\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_indexedSymbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_symbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_indexedSymbol\",\"type\":\"string\"},{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_shifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterDeregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_tokenAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_currentShifterAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_newShifterAddress\",\"type\":\"address\"}],\"name\":\"LogShifterUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"getShiftedTokens(address,uint256)\":{\"details\":\"To get all the registered shifted tokens use count = 0.\"},\"getShifterBySymbol(string)\":{\"params\":{\"_tokenSymbol\":\"The symbol of the ERC20Shifted token contract.\"}},\"getShifterByToken(address)\":{\"params\":{\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}},\"getShifters(address,uint256)\":{\"details\":\"To get all the registered shifters use count = 0.\"},\"getTokenBySymbol(string)\":{\"params\":{\"_tokenSymbol\":\"The symbol of the ERC20Shifted token contract to lookup.\"}},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"removeShifter(string)\":{\"params\":{\"_symbol\":\"The symbol of the token to deregister.\"}},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"setShifter(address,address)\":{\"params\":{\"_shifterAddress\":\"The address of the Shifter contract.\",\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}},\"updateShifter(address,address)\":{\"params\":{\"_newShifterAddress\":\"The updated address of the Shifter contract.\",\"_tokenAddress\":\"The address of the ERC20Shifted token contract.\"}}}},\"userdoc\":{\"methods\":{\"getShifterBySymbol(string)\":{\"notice\":\"Returns the Shifter address for the given ERC20Shifted token symbol. \"},\"getShifterByToken(address)\":{\"notice\":\"Returns the Shifter address for the given ERC20Shifted token contract address. \"},\"getTokenBySymbol(string)\":{\"notice\":\"Returns the ERC20Shifted address for the given token symbol. \"},\"removeShifter(string)\":{\"notice\":\"Allows the owner to remove the shifter address for a given ERC20shifter token contract. \"},\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setShifter(address,address)\":{\"notice\":\"Allow the owner to set the shifter address for a given ERC20Shifted token contract. \"},\"updateShifter(address,address)\":{\"notice\":\"Allow the owner to update the shifter address for a given ERC20Shifted token contract. \"}},\"notice\":\"ShifterRegistry is a mapping from assets to their associated ERC20Shifted and Shifter contracts.\"}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol\":\"ShifterRegistry\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol\":{\"keccak256\":\"0x401971511b7ab4f784cac3073adfb1d03610e7ae4117f8da4a5044b5130fc65b\",\"urls\":[\"bzzr://50190502bd6cdd85765b89632ca0178532ba759f126a90dc5c8a9124d5fff193\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol\":{\"keccak256\":\"0xf20e8b9d799331edb01094d5200b6de37f0351f3aa85691ff93917695a1f92ae\",\"urls\":[\"bzzr://a8d387d95fbbd7669f7437bda083a095b2f6c290ccf783ada190bde84e57b18c\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol\":{\"keccak256\":\"0x318273ca74f037e14739675b74e3538fa6d08ff412869f1931aacd351d35bdcc\",\"urls\":[\"bzzr://2174bf7bb80a3ed2d366ac0041168e2478c5b0a65b9a8aeaf99a0058e3021f53\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x6080604081905260006002819055600180546001600160a01b0319163317908190556001600160a01b0316917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36112c68061005f6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a47c84bd1161008c578063be1bca1911610066578063be1bca19146102d2578063deeb2efe14610300578063efa74f1f1461032c578063f2fde38b1461039a576100cf565b8063a47c84bd146101ba578063a904d13d14610236578063ac5b1ba914610264576100cf565b806328c4f410146100d45780634e71e0c814610116578063715018a6146101205780638da5cb5b146101285780638f32d59b1461013057806392a29e301461014c575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166103c0565b604080516001600160a01b039092168252519081900360200190f35b61011e6103de565b005b61011e6104a5565b6100fa610539565b610138610548565b604080519115158252519081900360200190f35b6100fa6004803603602081101561016257600080fd5b810190602081018135600160201b81111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460018302840111600160201b831117156101af57600080fd5b509092509050610559565b6101e6600480360360408110156101d057600080fd5b506001600160a01b0381351690602001356105a9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022257818101518382015260200161020a565b505050509050019250505060405180910390f35b61011e6004803603604081101561024c57600080fd5b506001600160a01b0381358116916020013516610676565b61011e6004803603602081101561027a57600080fd5b810190602081018135600160201b81111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460018302840111600160201b831117156102c757600080fd5b509092509050610ace565b61011e600480360360408110156102e857600080fd5b506001600160a01b0381358116916020013516610cca565b6101e66004803603604081101561031657600080fd5b506001600160a01b038135169060200135610df9565b6100fa6004803603602081101561034257600080fd5b810190602081018135600160201b81111561035c57600080fd5b82018360208201111561036e57600080fd5b803590602001918460018302840111600160201b8311171561038f57600080fd5b509092509050610ebb565b61011e600480360360208110156103b057600080fd5b50356001600160a01b0316610ef5565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b031633146104405760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6104ad610548565b6104ef5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60006005600060068585604051808383808284379190910194855250506040805160209481900385019020546001600160a01b039081168652938501959095525050910160002054169392505050565b60606000826105bb57506002546105be565b50815b6060816040519080825280602002602001820160405280156105ea578160200160208202803883390190505b5090506000856001600160a01b03811661060b576106086004610f61565b90505b8382101561066b576001600160a01b0381166106265761066b565b8083838151811061063357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061065e600482610f80565b905060018201915061060b565b509095945050505050565b61067e610548565b6106c05760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6106cb600382610ff5565b156107205760408051600160e51b62461bcd02815260206004820152601a60248201527f7368696674657220616c72656164792072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416156107905760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b6060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051600160201b81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151600160201b81118282018710171561084b57600080fd5b5050929190505050905060006001600160a01b03166006826040518082805190602001908083835b602083106108925780518252601f199092019160209182019101610873565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b031692909214915061092390505760408051600160e51b62461bcd02815260206004820152601960248201527f73796d626f6c20616c7265616479207265676973746572656400000000000000604482015290519081900360640190fd5b61092e600383611014565b610939600484611014565b826006826040518082805190602001908083835b6020831061096c5780518252601f19909201916020918201910161094d565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201852080546001600160a01b03199081166001600160a01b0398891617909155898716600081815260058552929092208054909116968916968717905560028054600101905586519094879450925082918401908083835b60208310610a0c5780518252601f1990920191602091820191016109ed565b51815160209384036101000a60001901801990921691161790526040805192909401829003822081835289518383015289519096507fad1b5a1f09ea4cf872d9274b59cccba2c4fb43f92eaf5a54b705449417adce1e95508994929350839283019185019080838360005b83811015610a8f578181015183820152602001610a77565b50505050905090810190601f168015610abc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b610ad6610548565b610b185760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505080610ba15760408051600160e51b62461bcd02815260206004820152601560248201527f73796d626f6c206e6f7420726567697374657265640000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380821660009081526005602052604080822080546001600160a01b03198116909155905192169160069086908690808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094166001600160a01b03199094169390931790925550610c23905060038261102b565b610c2e60048361102b565b600280546000190190556040516001600160a01b038083169190841690869086908083838082843760408051939091018390038320602080855284018c905295507f7fa2fe506a0201656c1d87a8927899ad716ebd71b23fdabce40b56ae2205696394508b93508a92915081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b610cd2610548565b610d145760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001600160a01b038083166000908152600560205260409020541680610d845760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b610d8f60038261102b565b610d9a600383611014565b6001600160a01b0383811660008181526005602052604080822080546001600160a01b03191687861690811790915590519093851692917f78ef5fc29fe65855a5352e3954d6839f596542b47b3aeb40b84596358d06f09a91a4505050565b6060600082610e0b5750600254610e0e565b50815b606081604051908082528060200260200182016040528015610e3a578160200160208202803883390190505b5090506000856001600160a01b038116610e5b57610e586003610f61565b90505b8382101561066b576001600160a01b038116610e765761066b565b80838381518110610e8357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610eae600382610f80565b9050600182019150610e5b565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b610efd610548565b610f3f5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805260209190915260409020600101546001600160a01b031690565b6000610f8c8383610ff5565b610fd15760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6001600160a01b03166000908152602091909152604090205460ff1690565b611027826110218461110d565b8361112f565b5050565b6110358282610ff5565b61107a5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b03811661108d57611027565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b60008080526020829052604090205461010090046001600160a01b0316919050565b6111398382610ff5565b1561118e5760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111988383610ff5565b806111aa57506001600160a01b038216155b6111ef5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff191617905556fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058202404f2af812c86565d29c0a114533181e32f56b33e64dfff4ffa0bb8d6c78d460029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063a47c84bd1161008c578063be1bca1911610066578063be1bca19146102d2578063deeb2efe14610300578063efa74f1f1461032c578063f2fde38b1461039a576100cf565b8063a47c84bd146101ba578063a904d13d14610236578063ac5b1ba914610264576100cf565b806328c4f410146100d45780634e71e0c814610116578063715018a6146101205780638da5cb5b146101285780638f32d59b1461013057806392a29e301461014c575b600080fd5b6100fa600480360360208110156100ea57600080fd5b50356001600160a01b03166103c0565b604080516001600160a01b039092168252519081900360200190f35b61011e6103de565b005b61011e6104a5565b6100fa610539565b610138610548565b604080519115158252519081900360200190f35b6100fa6004803603602081101561016257600080fd5b810190602081018135600160201b81111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460018302840111600160201b831117156101af57600080fd5b509092509050610559565b6101e6600480360360408110156101d057600080fd5b506001600160a01b0381351690602001356105a9565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561022257818101518382015260200161020a565b505050509050019250505060405180910390f35b61011e6004803603604081101561024c57600080fd5b506001600160a01b0381358116916020013516610676565b61011e6004803603602081101561027a57600080fd5b810190602081018135600160201b81111561029457600080fd5b8201836020820111156102a657600080fd5b803590602001918460018302840111600160201b831117156102c757600080fd5b509092509050610ace565b61011e600480360360408110156102e857600080fd5b506001600160a01b0381358116916020013516610cca565b6101e66004803603604081101561031657600080fd5b506001600160a01b038135169060200135610df9565b6100fa6004803603602081101561034257600080fd5b810190602081018135600160201b81111561035c57600080fd5b82018360208201111561036e57600080fd5b803590602001918460018302840111600160201b8311171561038f57600080fd5b509092509050610ebb565b61011e600480360360208110156103b057600080fd5b50356001600160a01b0316610ef5565b6001600160a01b039081166000908152600560205260409020541690565b6000546001600160a01b031633146104405760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b600080546001546040516001600160a01b039283169392909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600180546001600160a01b03199081166001600160a01b03841617909155169055565b6104ad610548565b6104ef5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6001546001600160a01b031690565b6001546001600160a01b0316331490565b60006005600060068585604051808383808284379190910194855250506040805160209481900385019020546001600160a01b039081168652938501959095525050910160002054169392505050565b60606000826105bb57506002546105be565b50815b6060816040519080825280602002602001820160405280156105ea578160200160208202803883390190505b5090506000856001600160a01b03811661060b576106086004610f61565b90505b8382101561066b576001600160a01b0381166106265761066b565b8083838151811061063357fe5b60200260200101906001600160a01b031690816001600160a01b03168152505061065e600482610f80565b905060018201915061060b565b509095945050505050565b61067e610548565b6106c05760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6106cb600382610ff5565b156107205760408051600160e51b62461bcd02815260206004820152601a60248201527f7368696674657220616c72656164792072656769737465726564000000000000604482015290519081900360640190fd5b6001600160a01b0382811660009081526005602052604090205416156107905760408051600160e51b62461bcd02815260206004820152601860248201527f746f6b656e20616c726561647920726567697374657265640000000000000000604482015290519081900360640190fd5b6060826001600160a01b03166395d89b416040518163ffffffff1660e01b815260040160006040518083038186803b1580156107cb57600080fd5b505afa1580156107df573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561080857600080fd5b810190808051600160201b81111561081f57600080fd5b8201602081018481111561083257600080fd5b8151600160201b81118282018710171561084b57600080fd5b5050929190505050905060006001600160a01b03166006826040518082805190602001908083835b602083106108925780518252601f199092019160209182019101610873565b51815160209384036101000a60001901801990921691161790529201948552506040519384900301909220546001600160a01b031692909214915061092390505760408051600160e51b62461bcd02815260206004820152601960248201527f73796d626f6c20616c7265616479207265676973746572656400000000000000604482015290519081900360640190fd5b61092e600383611014565b610939600484611014565b826006826040518082805190602001908083835b6020831061096c5780518252601f19909201916020918201910161094d565b51815160209384036101000a600019018019909216911617905292019485525060408051948590038201852080546001600160a01b03199081166001600160a01b0398891617909155898716600081815260058552929092208054909116968916968717905560028054600101905586519094879450925082918401908083835b60208310610a0c5780518252601f1990920191602091820191016109ed565b51815160209384036101000a60001901801990921691161790526040805192909401829003822081835289518383015289519096507fad1b5a1f09ea4cf872d9274b59cccba2c4fb43f92eaf5a54b705449417adce1e95508994929350839283019185019080838360005b83811015610a8f578181015183820152602001610a77565b50505050905090810190601f168015610abc5780820380516001836020036101000a031916815260200191505b509250505060405180910390a4505050565b610ad6610548565b610b185760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505080610ba15760408051600160e51b62461bcd02815260206004820152601560248201527f73796d626f6c206e6f7420726567697374657265640000000000000000000000604482015290519081900360640190fd5b6001600160a01b0380821660009081526005602052604080822080546001600160a01b03198116909155905192169160069086908690808383808284379190910194855250506040519283900360200190922080546001600160a01b03949094166001600160a01b03199094169390931790925550610c23905060038261102b565b610c2e60048361102b565b600280546000190190556040516001600160a01b038083169190841690869086908083838082843760408051939091018390038320602080855284018c905295507f7fa2fe506a0201656c1d87a8927899ad716ebd71b23fdabce40b56ae2205696394508b93508a92915081908101848480828437600083820152604051601f909101601f19169092018290039550909350505050a450505050565b610cd2610548565b610d145760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b6001600160a01b038083166000908152600560205260409020541680610d845760408051600160e51b62461bcd02815260206004820152601460248201527f746f6b656e206e6f742072656769737465726564000000000000000000000000604482015290519081900360640190fd5b610d8f60038261102b565b610d9a600383611014565b6001600160a01b0383811660008181526005602052604080822080546001600160a01b03191687861690811790915590519093851692917f78ef5fc29fe65855a5352e3954d6839f596542b47b3aeb40b84596358d06f09a91a4505050565b6060600082610e0b5750600254610e0e565b50815b606081604051908082528060200260200182016040528015610e3a578160200160208202803883390190505b5090506000856001600160a01b038116610e5b57610e586003610f61565b90505b8382101561066b576001600160a01b038116610e765761066b565b80838381518110610e8357fe5b60200260200101906001600160a01b031690816001600160a01b031681525050610eae600382610f80565b9050600182019150610e5b565b6000600683836040518083838082843791909101948552505060405192839003602001909220546001600160a01b03169250505092915050565b610efd610548565b610f3f5760408051600160e51b62461bcd028152602060048201526017602482015260008051602061127b833981519152604482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b0392909216919091179055565b600080805260209190915260409020600101546001600160a01b031690565b6000610f8c8383610ff5565b610fd15760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b506001600160a01b0390811660009081526020929092526040909120600101541690565b6001600160a01b03166000908152602091909152604090205460ff1690565b611027826110218461110d565b8361112f565b5050565b6110358282610ff5565b61107a5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b03811661108d57611027565b6001600160a01b0390811660008181526020939093526040808420805460018083018054610100938490048816808a52868a209093018054919098166001600160a01b031991821681179098559688529387208054610100600160a81b031916919092021790559190935280546001600160a81b03191690558154169055565b60008080526020829052604090205461010090046001600160a01b0316919050565b6111398382610ff5565b1561118e5760408051600160e51b62461bcd02815260206004820152600f60248201527f616c726561647920696e206c6973740000000000000000000000000000000000604482015290519081900360640190fd5b6111988383610ff5565b806111aa57506001600160a01b038216155b6111ef5760408051600160e51b62461bcd02815260206004820152600b6024820152600160aa1b6a1b9bdd081a5b881b1a5cdd02604482015290519081900360640190fd5b6001600160a01b0391821660008181526020949094526040808520600190810180549486168088528388208054610100600160a81b03199081166101009788021782558185018054989099166001600160a01b031998891681179099558354909716821790925595875291862080549094169285029290921790925591909252815460ff191617905556fe63616c6c6572206973206e6f7420746865206f776e6572000000000000000000a165627a7a723058202404f2af812c86565d29c0a114533181e32f56b33e64dfff4ffa0bb8d6c78d460029", - "sourceMap": "268:6839:10:-;;;;;942:1;920:23;;;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;-1:-1:-1;;;;;595:6:13;;562:40;;942:1:10;;562:40:13;268:6839:10;;;;;;", - "deployedSourceMap": "268:6839:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;268:6839:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6271:146;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6271:146:10;-1:-1:-1;;;;;6271:146:10;;:::i;:::-;;;;-1:-1:-1;;;;;6271:146:10;;;;;;;;;;;;;;2166:177:13;;;:::i;:::-;;1688:137;;;:::i;672:77::-;;;:::i;1244:90::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;6607:168:10;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6607:168:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6607:168:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6607:168:10;;;;;;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;-1:-1;6607:168:10;;-1:-1:-1;6607:168:10;-1:-1:-1;6607:168:10;:::i;5297:772::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5297:772:10;;;;;;;;:::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;5297:772:10;;;;;;;;;;;;;;;;;1654:929;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1654:929:10;;;;;;;;;;:::i;3714:697::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3714:697:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3714:697:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3714:697:10;;;;;;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;-1:-1;3714:697:10;;-1:-1:-1;3714:697:10;-1:-1:-1;3714:697:10;:::i;2872:646::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2872:646:10;;;;;;;;;;:::i;4480:742::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4480:742:10;;;;;;;;:::i;6966:139::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6966:139:10;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6966:139:10;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6966:139:10;;;;;;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;-1:-1;6966:139:10;;-1:-1:-1;6966:139:10;-1:-1:-1;6966:139:10;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;6271:146:10:-;-1:-1:-1;;;;;6380:29:10;;;6344:8;6380:29;;;:14;:29;;;;;;;;6271:146::o;2166:177:13:-;1091:13;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;;;2250:6;2229:43;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;;;2229:43;;;2289:13;;;;2280:22;;-1:-1:-1;;;;;;2280:22:13;;;-1:-1:-1;;;;;2289:13:13;;2280:22;;;;2310:26;;;2166:177::o;1688:137::-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;6607:168:10:-;6688:8;6724:14;:43;6739:13;6753:12;;6739:27;;;;;30:3:-1;22:6;14;1:33;45:16;;;;6739:27:10;;;-1:-1:-1;;6739:27:10;;;;;;;;;;;;;-1:-1:-1;;;;;6739:27:10;;;6724:43;;;;;;;;;-1:-1:-1;;6724:43:10;;-1:-1:-1;6724:43:10;;;;6607:168;-1:-1:-1;;;6607:168:10:o;5297:772::-;5378:16;5406:13;5433:11;5429:106;;-1:-1:-1;5468:11:10;;5429:106;;;-1:-1:-1;5518:6:10;5429:106;5545:30;5592:5;5578:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;5578:20:10;-1:-1:-1;5545:53:10;-1:-1:-1;5658:9:10;5696:6;-1:-1:-1;;;;;5716:18:10;;5712:90;;5757:34;5774:16;5757;:34::i;:::-;5750:41;;5712:90;5823:5;5819:1;:9;5812:221;;;-1:-1:-1;;;;;5848:18:10;;5844:62;;5886:5;;5844:62;5938:4;5919:13;5933:1;5919:16;;;;;;;;;;;;;:23;-1:-1:-1;;;;;5919:23:10;;;-1:-1:-1;;;;;5919:23:10;;;;;5963:39;5979:16;5997:4;5963:15;:39::i;:::-;5956:46;;6021:1;6016:6;;;;5812:221;;;-1:-1:-1;6049:13:10;;5297:772;-1:-1:-1;;;;;5297:772:10:o;1654:929::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1840:49:10;1860:11;1873:15;1840:19;:49::i;:::-;1839:50;1831:89;;;;;-1:-1:-1;;;;;1831:89:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1938:29:10;;;1979:3;1938:29;;;:14;:29;;;;;;;:45;1930:82;;;;;-1:-1:-1;;;;;1930:82:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:20;2058:13;-1:-1:-1;;;;;2045:34:10;;:36;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2045:36:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2045:36:10;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2045:36:10;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;13:2;5:11;;2:2;;;29:1;26;19:12;2:2;2045:36:10;;;;;;-1:-1:-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;;-1:-1;;;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;2045:36:10;;;;;;2022:59;;2132:3;-1:-1:-1;;;;;2099:37:10;:13;2113:6;2099:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2099:21:10;;;;;-1:-1:-1;2099:21:10;;;;;;;;;;;-1:-1:-1;;;;;2099:21:10;:37;;;;;-1:-1:-1;2091:75:10;;-1:-1:-1;2091:75:10;;;;-1:-1:-1;;;;;2091:75:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2212:47;2230:11;2243:15;2212:17;:47::i;:::-;2311:50;2329:16;2347:13;2311:17;:50::i;:::-;2396:13;2372;2386:6;2372:21;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2372:21:10;;;;;-1:-1:-1;2372:21:10;;;;;;;;;;;:37;;-1:-1:-1;;;;;;2372:37:10;;;-1:-1:-1;;;;;2372:37:10;;;;;;;2419:29;;;-1:-1:-1;2419:29:10;;;:14;:29;;;;;;:47;;;;;;;;;;;;;2476:11;:16;;-1:-1:-1;2476:16:10;;;2508:68;;2419:29;;2508:68;;-1:-1:-1;2372:21:10;-1:-1:-1;2372:21:10;;2508:68;;;;2372:21;2508:68;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2508:68:10;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2508:68:10;;-1:-1:-1;2508:68:10;;;;-1:-1:-1;2508:68:10;;;;;;;;;;;-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;2508:68:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;923:1:13;1654:929:10;;:::o;3714:697::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;3824:20:10;3847:13;3861:7;;3847:22;;;;;30:3:-1;22:6;14;1:33;45:16;;;;3847:22:10;;;-1:-1:-1;;3847:22:10;;;;;;;;;;;;-1:-1:-1;;;;;3847:22:10;;-1:-1:-1;;;3887:28:10;3879:62;;;;;-1:-1:-1;;;;;3879:62:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4012:28:10;;;3987:22;4012:28;;;:14;:28;;;;;;;;-1:-1:-1;;;;;;4087:43:10;;;;;4140:22;;4012:28;;;4140:13;;4154:7;;;;4140:22;4154:7;;;;4140:22;1:33:-1;45:16;;;;4140:22:10;;;-1:-1:-1;;4140:22:10;;;;;;;;;;;:37;;-1:-1:-1;;;;;4140:37:10;;;;-1:-1:-1;;;;;;4140:37:10;;;;;;;;;;-1:-1:-1;4187:46:10;;-1:-1:-1;4205:11:10;4218:14;4187:17;:46::i;:::-;4243:49;4261:16;4279:12;4243:17;:49::i;:::-;4302:11;:16;;-1:-1:-1;;4302:16:10;;;4334:70;;-1:-1:-1;;;;;4334:70:10;;;;;;;;4366:7;;;;4334:70;4366:7;;;;4334:70;1:33:-1;4334:70:10;;;45:16:-1;;;;4334:70:10;;;;;;;;;;;;;;;-1:-1:-1;4334:70:10;;-1:-1:-1;4357:7:10;;-1:-1:-1;4357:7:10;;4334:70;-1:-1:-1;4334:70:10;;;;4357:7;;;;4334:70;1:33:-1;99:1;81:16;;;74:27;4334:70:10;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;4334:70:10;;;;-1:-1:-1;4334:70:10;;-1:-1:-1;;;;4334:70:10;923:1:13;;3714:697:10;;:::o;2872:646::-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;-1:-1:-1;;;;;3052:29:10;;;3027:22;3052:29;;;:14;:29;;;;;;;3099:45;3091:78;;;;;-1:-1:-1;;;;;3091:78:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;3218:46;3236:11;3249:14;3218:17;:46::i;:::-;3316:50;3334:11;3347:18;3316:17;:50::i;:::-;-1:-1:-1;;;;;3377:29:10;;;;;;;:14;:29;;;;;;:50;;-1:-1:-1;;;;;;3377:50:10;;;;;;;;;;3443:68;;3377:50;;3443:68;;;3377:29;3443:68;;;923:1:13;2872:646:10;;:::o;4480:742::-;4556:16;4584:13;4611:11;4607:106;;-1:-1:-1;4646:11:10;;4607:106;;;-1:-1:-1;4696:6:10;4607:106;4723:25;4765:5;4751:20;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;4751:20:10;-1:-1:-1;4723:48:10;-1:-1:-1;4831:9:10;4869:6;-1:-1:-1;;;;;4889:18:10;;4885:85;;4930:29;4947:11;4930:16;:29::i;:::-;4923:36;;4885:85;4991:5;4987:1;:9;4980:211;;;-1:-1:-1;;;;;5016:18:10;;5012:62;;5054:5;;5012:62;5101:4;5087:8;5096:1;5087:11;;;;;;;;;;;;;:18;-1:-1:-1;;;;;5087:18:10;;;-1:-1:-1;;;;;5087:18:10;;;;;5126:34;5142:11;5155:4;5126:15;:34::i;:::-;5119:41;;5179:1;5174:6;;;;4980:211;;6966:139;7045:7;7071:13;7085:12;;7071:27;;;;;30:3:-1;22:6;14;1:33;45:16;;;;7071:27:10;;;-1:-1:-1;;7071:27:10;;;;;;;;;;;;-1:-1:-1;;;;;7071:27:10;;-1:-1:-1;;;6966:139:10;;;;:::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;;2045:24:13;-1:-1:-1;;;;;2045:24:13;;;;;;;;;;1975:101::o;4696:110:16:-;4753:7;4779:15;;;;;;;;;;;:20;;;-1:-1:-1;;;;;4779:20:16;;4696:110::o;5148:177::-;5218:7;5245:20;5254:4;5260;5245:8;:20::i;:::-;5237:44;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;-1:-1:-1;;;;;5237:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5298:15:16;;;:9;:15;;;;;;;;;;;;:20;;;;;5148:177::o;4334:126::-;-1:-1:-1;;;;;4431:15:16;4408:4;4431:15;;;;;;;;;;;:22;;;;4334:126::o;3808:163::-;3930:34;3942:4;3948:9;3952:4;3948:3;:9::i;:::-;3959:4;3930:11;:34::i;:::-;3808:163;;:::o;2757:514::-;2833:20;2842:4;2848;2833:8;:20::i;:::-;2825:44;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;-1:-1:-1;;;;;2825:44:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2883:12:16;;2879:49;;2911:7;;2879:49;-1:-1:-1;;;;;2949:15:16;;;2937:9;2949:15;;;;;;;;;;;;:24;;;2995:20;;;;;2949:24;;;;;;;3026:12;;;;;;:17;;;:21;;2995:20;;;;-1:-1:-1;;;;;;3026:21:16;;;;;;;;3057:12;;;;;;:25;;-1:-1:-1;;;;;;3057:25:16;;;;;;;;3202:15;;;;:30;;-1:-1:-1;;;;;;3242:22:16;;;;;;;;2757:514::o;5030:112::-;5085:7;5111:15;;;;;;;;;;:24;;;;-1:-1:-1;;;;;5111:24:16;5030:112;;;:::o;1906:541::-;2007:23;2016:4;2022:7;2007:8;:23::i;:::-;2006:24;1998:52;;;;;-1:-1:-1;;;;;1998:52:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;2068:22;2077:4;2083:6;2068:8;:22::i;:::-;:40;;;-1:-1:-1;;;;;;2094:14:16;;;2068:40;2060:64;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;-1:-1:-1;;;;;2060:64:16;;;;;;;;;;;;;;;-1:-1:-1;;;;;2208:17:16;;;2196:9;2208:17;;;;;;;;;;;;:22;;;;;;2241:18;;;;;;;;;:36;;-1:-1:-1;;;;;;2241:36:16;;;2208:22;2241:36;;;;;;2287:23;;;:27;;2208:22;;;;-1:-1:-1;;;;;;2287:27:16;;;;;;;;2324:32;;;;;;;;;;2366:12;;;;;;:31;;;;;;;;;;;;;;;2408:18;;;;:32;;-1:-1:-1;;2408:32:16;;;;1906:541::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"../libraries/Claimable.sol\";\nimport \"./ERC20Shifted.sol\";\nimport \"../libraries/LinkedList.sol\";\nimport \"./IShifter.sol\";\n\n/// @notice ShifterRegistry is a mapping from assets to their associated\n/// ERC20Shifted and Shifter contracts.\ncontract ShifterRegistry is Claimable {\n\n /// @dev The symbol is included twice because strings have to be hashed\n /// first in order to be used as a log index/topic.\n event LogShifterRegistered(string _symbol, string indexed _indexedSymbol, address indexed _tokenAddress, address indexed _shifterAddress);\n event LogShifterDeregistered(string _symbol, string indexed _indexedSymbol, address indexed _tokenAddress, address indexed _shifterAddress);\n event LogShifterUpdated(address indexed _tokenAddress, address indexed _currentShifterAddress, address indexed _newShifterAddress);\n\n /// @notice The number of shifters registered\n uint256 numShifters = 0;\n\n /// @notice A list of shifter contracts\n LinkedList.List private shifterList;\n\n /// @notice A list of shifted token contracts\n LinkedList.List private shiftedTokenList;\n\n /// @notice A map of token addresses to canonical shifter addresses\n mapping (address=>address) private shifterByToken;\n\n /// @notice A map of token symbols to canonical shifter addresses\n mapping (string=>address) private tokenBySymbol;\n\n /// @notice Allow the owner to set the shifter address for a given\n /// ERC20Shifted token contract.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n /// @param _shifterAddress The address of the Shifter contract.\n function setShifter(address _tokenAddress, address _shifterAddress) external onlyOwner {\n // Check that token, shifter and symbol haven't already been registered\n require(!LinkedList.isInList(shifterList, _shifterAddress), \"shifter already registered\");\n require(shifterByToken[_tokenAddress] == address(0x0), \"token already registered\");\n string memory symbol = ERC20Shifted(_tokenAddress).symbol();\n require(tokenBySymbol[symbol] == address(0x0), \"symbol already registered\");\n\n // Add to list of shifters\n LinkedList.append(shifterList, _shifterAddress);\n\n // Add to list of shifted tokens\n LinkedList.append(shiftedTokenList, _tokenAddress);\n\n tokenBySymbol[symbol] = _tokenAddress;\n shifterByToken[_tokenAddress] = _shifterAddress;\n numShifters += 1;\n\n emit LogShifterRegistered(symbol, symbol, _tokenAddress, _shifterAddress);\n }\n\n /// @notice Allow the owner to update the shifter address for a given\n /// ERC20Shifted token contract.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n /// @param _newShifterAddress The updated address of the Shifter contract.\n function updateShifter(address _tokenAddress, address _newShifterAddress) external onlyOwner {\n // Check that token, shifter are registered\n address currentShifter = shifterByToken[_tokenAddress];\n require(shifterByToken[_tokenAddress] != address(0x0), \"token not registered\");\n\n // Remove to list of shifters\n LinkedList.remove(shifterList, currentShifter);\n\n // Add to list of shifted tokens\n LinkedList.append(shifterList, _newShifterAddress);\n\n shifterByToken[_tokenAddress] = _newShifterAddress;\n\n emit LogShifterUpdated(_tokenAddress, currentShifter, _newShifterAddress);\n }\n\n /// @notice Allows the owner to remove the shifter address for a given\n /// ERC20shifter token contract.\n ///\n /// @param _symbol The symbol of the token to deregister.\n function removeShifter(string calldata _symbol) external onlyOwner {\n // Look up token address\n address tokenAddress = tokenBySymbol[_symbol];\n require(tokenAddress != address(0x0), \"symbol not registered\");\n\n // Look up shifter address\n address shifterAddress = shifterByToken[tokenAddress];\n\n // Remove token and shifter\n shifterByToken[tokenAddress] = address(0x0);\n tokenBySymbol[_symbol] = address(0x0);\n LinkedList.remove(shifterList, shifterAddress);\n LinkedList.remove(shiftedTokenList, tokenAddress);\n numShifters -= 1;\n\n emit LogShifterDeregistered(_symbol, _symbol, tokenAddress, shifterAddress);\n }\n\n /// @dev To get all the registered shifters use count = 0.\n function getShifters(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count;\n if (_count == 0) {\n count = numShifters;\n } else {\n count = _count;\n }\n\n address[] memory shifters = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = LinkedList.begin(shifterList);\n }\n\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n shifters[n] = next;\n next = LinkedList.next(shifterList, next);\n n += 1;\n }\n return shifters;\n }\n\n /// @dev To get all the registered shifted tokens use count = 0.\n function getShiftedTokens(address _start, uint256 _count) external view returns (address[] memory) {\n uint256 count;\n if (_count == 0) {\n count = numShifters;\n } else {\n count = _count;\n }\n\n address[] memory shiftedTokens = new address[](count);\n\n // Begin with the first node in the list\n uint256 n = 0;\n address next = _start;\n if (next == address(0)) {\n next = LinkedList.begin(shiftedTokenList);\n }\n\n while (n < count) {\n if (next == address(0)) {\n break;\n }\n shiftedTokens[n] = next;\n next = LinkedList.next(shiftedTokenList, next);\n n += 1;\n }\n return shiftedTokens;\n }\n\n /// @notice Returns the Shifter address for the given ERC20Shifted token\n /// contract address.\n ///\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n function getShifterByToken(address _tokenAddress) external view returns (IShifter) {\n return IShifter(shifterByToken[_tokenAddress]);\n }\n\n /// @notice Returns the Shifter address for the given ERC20Shifted token\n /// symbol.\n ///\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.\n function getShifterBySymbol(string calldata _tokenSymbol) external view returns (IShifter) {\n return IShifter(shifterByToken[tokenBySymbol[_tokenSymbol]]);\n }\n\n /// @notice Returns the ERC20Shifted address for the given token symbol.\n ///\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n /// lookup.\n function getTokenBySymbol(string calldata _tokenSymbol) external view returns (address) {\n return tokenBySymbol[_tokenSymbol];\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "exportedSymbols": { - "ShifterRegistry": [ - 3842 - ] - }, - "id": 3843, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3354, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 3355, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 4315, - "src": "25:36:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 3356, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 2877, - "src": "62:28:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 3357, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 5092, - "src": "91:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol", - "file": "./IShifter.sol", - "id": 3358, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 2902, - "src": "129:24:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3359, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4314, - "src": "296:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4314", - "typeString": "contract Claimable" - } - }, - "id": 3360, - "nodeType": "InheritanceSpecifier", - "src": "296:9:10" - } - ], - "contractDependencies": [ - 4314 - ], - "contractKind": "contract", - "documentation": "@notice ShifterRegistry is a mapping from assets to their associated\n ERC20Shifted and Shifter contracts.", - "fullyImplemented": true, - "id": 3842, - "linearizedBaseContracts": [ - 3842, - 4314 - ], - "name": "ShifterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev The symbol is included twice because strings have to be hashed\n first in order to be used as a log index/topic.", - "id": 3370, - "name": "LogShifterRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3362, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "472:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3361, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3364, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "488:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "488:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3366, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "519:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "519:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3368, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "550:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "550:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:111:10" - }, - "src": "445:138:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3380, - "name": "LogShifterDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3372, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "617:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "617:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3374, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "633:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3373, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "633:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3376, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "664:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "664:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3378, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "695:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:111:10" - }, - "src": "588:140:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3388, - "name": "LogShifterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 3387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3382, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "757:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3384, - "indexed": true, - "name": "_currentShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "788:38:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3386, - "indexed": true, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "828:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3385, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "756:107:10" - }, - "src": "733:131:10" - }, - { - "constant": false, - "id": 3391, - "name": "numShifters", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "920:23:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "920:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 3390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3393, - "name": "shifterList", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "994:35:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3392, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4687, - "src": "994:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3395, - "name": "shiftedTokenList", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "1086:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3394, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4687, - "src": "1086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3399, - "name": "shifterByToken", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "1205:49:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3398, - "keyType": { - "id": 3396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1205:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3397, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1223:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3403, - "name": "tokenBySymbol", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "1331:47:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "typeName": { - "id": 3402, - "keyType": { - "id": 3400, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "1331:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "valueType": { - "id": 3401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1348:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 3489, - "nodeType": "Block", - "src": "1741:842:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1839:50:10", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3415, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "1860:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3416, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "1873:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3413, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1840:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isInList", - "nodeType": "MemberAccess", - "referencedDeclaration": 5014, - "src": "1840:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (bool)" - } - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:49:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7368696674657220616c72656164792072656769737465726564", - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1891:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - }, - "value": "shifter already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - } - ], - "id": 3412, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "1831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1831:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3421, - "nodeType": "ExpressionStatement", - "src": "1831:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3423, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "1938:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3425, - "indexExpression": { - "argumentTypes": null, - "id": 3424, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "1953:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1938:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1971:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1971:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1938:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 3422, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "1930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1930:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "1930:82:10" - }, - { - "assignments": [ - 3434 - ], - "declarations": [ - { - "constant": false, - "id": 3434, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "2022:20:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3433, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2022:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3440, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3436, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2058:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3435, - "name": "ERC20Shifted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "2045:12:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Shifted_$2864_$", - "typeString": "type(contract ERC20Shifted)" - } - }, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:27:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7980, - "src": "2045:34:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 3439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:36:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3442, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "2099:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3444, - "indexExpression": { - "argumentTypes": null, - "id": 3443, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2113:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2132:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2099:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c20616c72656164792072656769737465726564", - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2138:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - }, - "value": "symbol already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - } - ], - "id": 3441, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "2091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:75:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3451, - "nodeType": "ExpressionStatement", - "src": "2091:75:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3455, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "2230:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3456, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "2243:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3452, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2212:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4958, - "src": "2212:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3458, - "nodeType": "ExpressionStatement", - "src": "2212:47:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3462, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "2329:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3463, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2347:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3459, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4958, - "src": "2311:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2311:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3465, - "nodeType": "ExpressionStatement", - "src": "2311:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3466, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "2372:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3468, - "indexExpression": { - "argumentTypes": null, - "id": 3467, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2386:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2372:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3469, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2396:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2372:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3471, - "nodeType": "ExpressionStatement", - "src": "2372:37:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3472, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2419:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3474, - "indexExpression": { - "argumentTypes": null, - "id": 3473, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2434:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3475, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "2451:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2419:47:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3477, - "nodeType": "ExpressionStatement", - "src": "2419:47:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3478, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "2476:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2491:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2476:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3481, - "nodeType": "ExpressionStatement", - "src": "2476:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3483, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2529:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3484, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2537:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3485, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2545:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3486, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "2560:15:10", - "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_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3482, - "name": "LogShifterRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2508:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2508:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3488, - "nodeType": "EmitStatement", - "src": "2503:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to set the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _shifterAddress The address of the Shifter contract.", - "id": 3490, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3410, - "modifierName": { - "argumentTypes": null, - "id": 3409, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "1731:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1731:9:10" - } - ], - "name": "setShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3405, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3490, - "src": "1674:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3407, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3490, - "src": "1697:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3406, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1697:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:48:10" - }, - "returnParameters": { - "id": 3411, - "nodeType": "ParameterList", - "parameters": [], - "src": "1741:0:10" - }, - "scope": 3842, - "src": "1654:929:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3542, - "nodeType": "Block", - "src": "2965:553:10", - "statements": [ - { - "assignments": [ - 3500 - ], - "declarations": [ - { - "constant": false, - "id": 3500, - "name": "currentShifter", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "3027:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3027:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3504, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3501, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3052:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3503, - "indexExpression": { - "argumentTypes": null, - "id": 3502, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3067:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3027:54:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3506, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3099:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3508, - "indexExpression": { - "argumentTypes": null, - "id": 3507, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3114:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3099:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3132:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3132:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3099:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 3513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3146:22:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 3505, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3515, - "nodeType": "ExpressionStatement", - "src": "3091:78:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3519, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "3236:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3520, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "3249:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3516, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "3218:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4926, - "src": "3218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3218:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3522, - "nodeType": "ExpressionStatement", - "src": "3218:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "3334:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3527, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3347:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3523, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "3316:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4958, - "src": "3316:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3316:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3529, - "nodeType": "ExpressionStatement", - "src": "3316:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3530, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3377:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3532, - "indexExpression": { - "argumentTypes": null, - "id": 3531, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3392:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3377:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3533, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3409:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3377:50:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3535, - "nodeType": "ExpressionStatement", - "src": "3377:50:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3537, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3461:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3538, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "3476:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3539, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3492:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3536, - "name": "LogShifterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3388, - "src": "3443:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 3540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3443:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3541, - "nodeType": "EmitStatement", - "src": "3438:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to update the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _newShifterAddress The updated address of the Shifter contract.", - "id": 3543, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3497, - "modifierName": { - "argumentTypes": null, - "id": 3496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "2955:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2955:9:10" - } - ], - "name": "updateShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3492, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3543, - "src": "2895:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2895:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3494, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3543, - "src": "2918:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2894:51:10" - }, - "returnParameters": { - "id": 3498, - "nodeType": "ParameterList", - "parameters": [], - "src": "2965:0:10" - }, - "scope": 3842, - "src": "2872:646:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3612, - "nodeType": "Block", - "src": "3781:630:10", - "statements": [ - { - "assignments": [ - 3551 - ], - "declarations": [ - { - "constant": false, - "id": 3551, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3612, - "src": "3824:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3555, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3552, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "3847:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3554, - "indexExpression": { - "argumentTypes": null, - "id": 3553, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "3861:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3847:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3824:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3557, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "3887:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3911:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3887:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c206e6f742072656769737465726564", - "id": 3562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:23:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - }, - "value": "symbol not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - } - ], - "id": 3556, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3879:62:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3564, - "nodeType": "ExpressionStatement", - "src": "3879:62:10" - }, - { - "assignments": [ - 3566 - ], - "declarations": [ - { - "constant": false, - "id": 3566, - "name": "shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3612, - "src": "3987:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3987:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3570, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3567, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "4012:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3569, - "indexExpression": { - "argumentTypes": null, - "id": 3568, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4027:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3987:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3571, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "4087:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3573, - "indexExpression": { - "argumentTypes": null, - "id": 3572, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4087:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4126:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4087:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3578, - "nodeType": "ExpressionStatement", - "src": "4087:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3579, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "4140:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3581, - "indexExpression": { - "argumentTypes": null, - "id": 3580, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "4154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4140:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4165:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4140:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3586, - "nodeType": "ExpressionStatement", - "src": "4140:37:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3590, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "4205:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3591, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3566, - "src": "4218:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3587, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "4187:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4926, - "src": "4187:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4187:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3593, - "nodeType": "ExpressionStatement", - "src": "4187:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3597, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "4261:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3598, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4279:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3594, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "4243:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4926, - "src": "4243:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4243:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3600, - "nodeType": "ExpressionStatement", - "src": "4243:49:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3601, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "4302:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4302:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "4302:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3606, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "4357:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3607, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "4366:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3608, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4375:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3609, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3566, - "src": "4389:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3605, - "name": "LogShifterDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3380, - "src": "4334:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4334:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3611, - "nodeType": "EmitStatement", - "src": "4329:75:10" - } - ] - }, - "documentation": "@notice Allows the owner to remove the shifter address for a given\n ERC20shifter token contract.\n\n /// @param _symbol The symbol of the token to deregister.", - "id": 3613, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3548, - "modifierName": { - "argumentTypes": null, - "id": 3547, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "3771:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3771:9:10" - } - ], - "name": "removeShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3545, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3613, - "src": "3737:23:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3544, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3737:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:25:10" - }, - "returnParameters": { - "id": 3549, - "nodeType": "ParameterList", - "parameters": [], - "src": "3781:0:10" - }, - "scope": 3842, - "src": "3714:697:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3705, - "nodeType": "Block", - "src": "4574:648:10", - "statements": [ - { - "assignments": [ - 3624 - ], - "declarations": [ - { - "constant": false, - "id": 3624, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4584:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3625, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4584:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3626, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "4611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4611:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3638, - "nodeType": "Block", - "src": "4674:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3634, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4688:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3635, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "4696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4688:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "4688:14:10" - } - ] - }, - "id": 3639, - "nodeType": "IfStatement", - "src": "4607:106:10", - "trueBody": { - "id": 3633, - "nodeType": "Block", - "src": "4624:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "4646:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4638:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3632, - "nodeType": "ExpressionStatement", - "src": "4638:19:10" - } - ] - } - }, - { - "assignments": [ - 3643 - ], - "declarations": [ - { - "constant": false, - "id": 3643, - "name": "shifters", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4723:25:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3641, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3642, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4723:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3649, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3647, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4765:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4751:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3644, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3645, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4755:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4723:48:10" - }, - { - "assignments": [ - 3651 - ], - "declarations": [ - { - "constant": false, - "id": 3651, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4831:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3650, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3653, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4843:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:13:10" - }, - { - "assignments": [ - 3655 - ], - "declarations": [ - { - "constant": false, - "id": 3655, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4854:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4854:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3657, - "initialValue": { - "argumentTypes": null, - "id": 3656, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3615, - "src": "4869:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4854:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3658, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "4889:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4897:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4889:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3671, - "nodeType": "IfStatement", - "src": "4885:85:10", - "trueBody": { - "id": 3670, - "nodeType": "Block", - "src": "4909:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3663, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "4923:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3666, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "4947:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3664, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "4930:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5028, - "src": "4930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4923:36:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3669, - "nodeType": "ExpressionStatement", - "src": "4923:36:10" - } - ] - } - }, - { - "body": { - "id": 3701, - "nodeType": "Block", - "src": "4998:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3675, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5016:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3677, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5032:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5024:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3682, - "nodeType": "IfStatement", - "src": "5012:62:10", - "trueBody": { - "id": 3681, - "nodeType": "Block", - "src": "5036:38:10", - "statements": [ - { - "id": 3680, - "nodeType": "Break", - "src": "5054:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3683, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "5087:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3685, - "indexExpression": { - "argumentTypes": null, - "id": 3684, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "5096:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5087:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3686, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5101:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5087:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3688, - "nodeType": "ExpressionStatement", - "src": "5087:18:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3689, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5119:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3692, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "5142:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3693, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5155:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3690, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "5126:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5066, - "src": "5126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3696, - "nodeType": "ExpressionStatement", - "src": "5119:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3697, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "5174:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5179:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5174:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3700, - "nodeType": "ExpressionStatement", - "src": "5174:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3672, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "4987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3673, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4991:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4987:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3702, - "nodeType": "WhileStatement", - "src": "4980:211:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3703, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "5207:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3622, - "id": 3704, - "nodeType": "Return", - "src": "5200:15:10" - } - ] - }, - "documentation": "@dev To get all the registered shifters use count = 0.", - "id": 3706, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3615, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3706, - "src": "4501:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3614, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4501:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3617, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3706, - "src": "4517:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3616, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4500:32:10" - }, - "returnParameters": { - "id": 3622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3621, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3706, - "src": "4556:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4556:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3620, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4556:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4555:18:10" - }, - "scope": 3842, - "src": "4480:742:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3798, - "nodeType": "Block", - "src": "5396:673:10", - "statements": [ - { - "assignments": [ - 3717 - ], - "declarations": [ - { - "constant": false, - "id": 3717, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5406:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3716, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3718, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5406:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3719, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3710, - "src": "5433:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5443:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5433:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3731, - "nodeType": "Block", - "src": "5496:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3727, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5510:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3728, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3710, - "src": "5518:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5510:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3730, - "nodeType": "ExpressionStatement", - "src": "5510:14:10" - } - ] - }, - "id": 3732, - "nodeType": "IfStatement", - "src": "5429:106:10", - "trueBody": { - "id": 3726, - "nodeType": "Block", - "src": "5446:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3722, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5460:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3723, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "5468:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5460:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3725, - "nodeType": "ExpressionStatement", - "src": "5460:19:10" - } - ] - } - }, - { - "assignments": [ - 3736 - ], - "declarations": [ - { - "constant": false, - "id": 3736, - "name": "shiftedTokens", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5545:30:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3734, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3735, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5545:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3742, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3740, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5592:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5578:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5582:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3738, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5582:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5578:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5545:53:10" - }, - { - "assignments": [ - 3744 - ], - "declarations": [ - { - "constant": false, - "id": 3744, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5658:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3746, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5670:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5658:13:10" - }, - { - "assignments": [ - 3748 - ], - "declarations": [ - { - "constant": false, - "id": 3748, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5681:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3750, - "initialValue": { - "argumentTypes": null, - "id": 3749, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3708, - "src": "5696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5681:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3751, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5716:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5732:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5724:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5716:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3764, - "nodeType": "IfStatement", - "src": "5712:90:10", - "trueBody": { - "id": 3763, - "nodeType": "Block", - "src": "5736:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3756, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5750:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3759, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "5774:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3757, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "5757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5028, - "src": "5757:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5757:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5750:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3762, - "nodeType": "ExpressionStatement", - "src": "5750:41:10" - } - ] - } - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5830:203:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3768, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5848:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5864:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5856:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5848:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3775, - "nodeType": "IfStatement", - "src": "5844:62:10", - "trueBody": { - "id": 3774, - "nodeType": "Block", - "src": "5868:38:10", - "statements": [ - { - "id": 3773, - "nodeType": "Break", - "src": "5886:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3776, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "5919:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3778, - "indexExpression": { - "argumentTypes": null, - "id": 3777, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "5933:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5919:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3779, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5938:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5919:23:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3781, - "nodeType": "ExpressionStatement", - "src": "5919:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3782, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5956:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3785, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "5979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3786, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5997:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3783, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "5963:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5066, - "src": "5963:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5956:46:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3789, - "nodeType": "ExpressionStatement", - "src": "5956:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3790, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6016:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6021:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6016:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3793, - "nodeType": "ExpressionStatement", - "src": "6016:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3765, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "5819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3766, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5823:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5819:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3795, - "nodeType": "WhileStatement", - "src": "5812:221:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3796, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "6049:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3715, - "id": 3797, - "nodeType": "Return", - "src": "6042:20:10" - } - ] - }, - "documentation": "@dev To get all the registered shifted tokens use count = 0.", - "id": 3799, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShiftedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3708, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3799, - "src": "5323:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3710, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3799, - "src": "5339:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3709, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5322:32:10" - }, - "returnParameters": { - "id": 3715, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3714, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3799, - "src": "5378:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5378:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3713, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5378:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5377:18:10" - }, - "scope": 3842, - "src": "5297:772:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3812, - "nodeType": "Block", - "src": "6354:63:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3807, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "6380:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3808, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3801, - "src": "6395:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6380:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3806, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6371:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6371:39:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3805, - "id": 3811, - "nodeType": "Return", - "src": "6364:46:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n contract address.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.", - "id": 3813, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterByToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3801, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "6298:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6298:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6297:23:10" - }, - "returnParameters": { - "id": 3805, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3804, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "6344:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3803, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6344:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:10:10" - }, - "scope": 3842, - "src": "6271:146:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3828, - "nodeType": "Block", - "src": "6698:77:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3821, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "6724:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3825, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3822, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "6739:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3824, - "indexExpression": { - "argumentTypes": null, - "id": 3823, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "6753:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6739:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6724:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3820, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6715:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6715:53:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3819, - "id": 3827, - "nodeType": "Return", - "src": "6708:60:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.", - "id": 3829, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3815, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "6635:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3814, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6635:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6634:30:10" - }, - "returnParameters": { - "id": 3819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3818, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "6688:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3817, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6688:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6687:10:10" - }, - "scope": 3842, - "src": "6607:168:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3840, - "nodeType": "Block", - "src": "7054:51:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3836, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "7071:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3838, - "indexExpression": { - "argumentTypes": null, - "id": 3837, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3831, - "src": "7085:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7071:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3835, - "id": 3839, - "nodeType": "Return", - "src": "7064:34:10" - } - ] - }, - "documentation": "@notice Returns the ERC20Shifted address for the given token symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n lookup.", - "id": 3841, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTokenBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3832, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3831, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3841, - "src": "6992:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3830, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6992:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6991:30:10" - }, - "returnParameters": { - "id": 3835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3841, - "src": "7045:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3833, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7045:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7044:9:10" - }, - "scope": 3842, - "src": "6966:139:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3843, - "src": "268:6839:10" - } - ], - "src": "0:7107:10" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ShifterRegistry.sol", - "exportedSymbols": { - "ShifterRegistry": [ - 3842 - ] - }, - "id": 3843, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 3354, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:10" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 3355, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 4315, - "src": "25:36:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 3356, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 2877, - "src": "62:28:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/LinkedList.sol", - "file": "../libraries/LinkedList.sol", - "id": 3357, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 5092, - "src": "91:37:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/IShifter.sol", - "file": "./IShifter.sol", - "id": 3358, - "nodeType": "ImportDirective", - "scope": 3843, - "sourceUnit": 2902, - "src": "129:24:10", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3359, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4314, - "src": "296:9:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4314", - "typeString": "contract Claimable" - } - }, - "id": 3360, - "nodeType": "InheritanceSpecifier", - "src": "296:9:10" - } - ], - "contractDependencies": [ - 4314 - ], - "contractKind": "contract", - "documentation": "@notice ShifterRegistry is a mapping from assets to their associated\n ERC20Shifted and Shifter contracts.", - "fullyImplemented": true, - "id": 3842, - "linearizedBaseContracts": [ - 3842, - 4314 - ], - "name": "ShifterRegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev The symbol is included twice because strings have to be hashed\n first in order to be used as a log index/topic.", - "id": 3370, - "name": "LogShifterRegistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3362, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "472:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3361, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "472:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3364, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "488:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3363, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "488:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3366, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "519:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "519:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3368, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3370, - "src": "550:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "550:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "471:111:10" - }, - "src": "445:138:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3380, - "name": "LogShifterDeregistered", - "nodeType": "EventDefinition", - "parameters": { - "id": 3379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3372, - "indexed": false, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "617:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3371, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "617:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3374, - "indexed": true, - "name": "_indexedSymbol", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "633:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3373, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "633:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3376, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "664:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3375, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "664:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3378, - "indexed": true, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3380, - "src": "695:31:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "695:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "616:111:10" - }, - "src": "588:140:10" - }, - { - "anonymous": false, - "documentation": null, - "id": 3388, - "name": "LogShifterUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 3387, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3382, - "indexed": true, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "757:29:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3381, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "757:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3384, - "indexed": true, - "name": "_currentShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "788:38:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3386, - "indexed": true, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3388, - "src": "828:34:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3385, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "828:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "756:107:10" - }, - "src": "733:131:10" - }, - { - "constant": false, - "id": 3391, - "name": "numShifters", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "920:23:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "920:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 3390, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "942:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 3393, - "name": "shifterList", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "994:35:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3392, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4687, - "src": "994:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3395, - "name": "shiftedTokenList", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "1086:40:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List" - }, - "typeName": { - "contractScope": null, - "id": 3394, - "name": "LinkedList.List", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4687, - "src": "1086:15:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage_ptr", - "typeString": "struct LinkedList.List" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3399, - "name": "shifterByToken", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "1205:49:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 3398, - "keyType": { - "id": 3396, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1214:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "1205:26:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 3397, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1223:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 3403, - "name": "tokenBySymbol", - "nodeType": "VariableDeclaration", - "scope": 3842, - "src": "1331:47:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "typeName": { - "id": 3402, - "keyType": { - "id": 3400, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1340:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "1331:25:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string => address)" - }, - "valueType": { - "id": 3401, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1348:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 3489, - "nodeType": "Block", - "src": "1741:842:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "1839:50:10", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3415, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "1860:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3416, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "1873:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3413, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "1840:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isInList", - "nodeType": "MemberAccess", - "referencedDeclaration": 5014, - "src": "1840:19:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$_t_bool_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (bool)" - } - }, - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1840:49:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7368696674657220616c72656164792072656769737465726564", - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1891:28:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - }, - "value": "shifter already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e13b08d2296d7e88621a90ac7590d756db9464b17f7a77987b9cabd57ed71d91", - "typeString": "literal_string \"shifter already registered\"" - } - ], - "id": 3412, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "1831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1831:89:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3421, - "nodeType": "ExpressionStatement", - "src": "1831:89:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3423, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "1938:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3425, - "indexExpression": { - "argumentTypes": null, - "id": 3424, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "1953:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1938:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1979:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1971:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1971:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1938:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e20616c72656164792072656769737465726564", - "id": 3430, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1985:26:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - }, - "value": "token already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d4798e198fe911d677431c88f83cf3b2c53b61cd78866de466c7e0bb77f9d3ed", - "typeString": "literal_string \"token already registered\"" - } - ], - "id": 3422, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "1930:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1930:82:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "1930:82:10" - }, - { - "assignments": [ - 3434 - ], - "declarations": [ - { - "constant": false, - "id": 3434, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 3489, - "src": "2022:20:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3433, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2022:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3440, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3436, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2058:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3435, - "name": "ERC20Shifted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2864, - "src": "2045:12:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Shifted_$2864_$", - "typeString": "type(contract ERC20Shifted)" - } - }, - "id": 3437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:27:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3438, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "symbol", - "nodeType": "MemberAccess", - "referencedDeclaration": 7980, - "src": "2045:34:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$__$returns$_t_string_memory_ptr_$", - "typeString": "function () view external returns (string memory)" - } - }, - "id": 3439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2045:36:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2022:59:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3442, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "2099:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3444, - "indexExpression": { - "argumentTypes": null, - "id": 3443, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2113:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2099:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3446, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2132:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2124:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2124:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2099:37:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c20616c72656164792072656769737465726564", - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2138:27:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - }, - "value": "symbol already registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_2230d282de1f7941b750ae11f926786d117fb349f3f04c36d9b684f13288baf5", - "typeString": "literal_string \"symbol already registered\"" - } - ], - "id": 3441, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "2091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2091:75:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3451, - "nodeType": "ExpressionStatement", - "src": "2091:75:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3455, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "2230:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3456, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "2243:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3452, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2212:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3454, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4958, - "src": "2212:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2212:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3458, - "nodeType": "ExpressionStatement", - "src": "2212:47:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3462, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "2329:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3463, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2347:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3459, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "2311:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4958, - "src": "2311:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3464, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2311:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3465, - "nodeType": "ExpressionStatement", - "src": "2311:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3470, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3466, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "2372:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3468, - "indexExpression": { - "argumentTypes": null, - "id": 3467, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2386:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2372:21:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3469, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2396:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2372:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3471, - "nodeType": "ExpressionStatement", - "src": "2372:37:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3472, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "2419:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3474, - "indexExpression": { - "argumentTypes": null, - "id": 3473, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2434:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2419:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3475, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "2451:15:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2419:47:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3477, - "nodeType": "ExpressionStatement", - "src": "2419:47:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3478, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "2476:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2491:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "2476:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3481, - "nodeType": "ExpressionStatement", - "src": "2476:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3483, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2529:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3484, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3434, - "src": "2537:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3485, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3405, - "src": "2545:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3486, - "name": "_shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3407, - "src": "2560:15:10", - "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_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3482, - "name": "LogShifterRegistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3370, - "src": "2508:20:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2508:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3488, - "nodeType": "EmitStatement", - "src": "2503:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to set the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _shifterAddress The address of the Shifter contract.", - "id": 3490, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3410, - "modifierName": { - "argumentTypes": null, - "id": 3409, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "1731:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1731:9:10" - } - ], - "name": "setShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3405, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3490, - "src": "1674:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3404, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1674:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3407, - "name": "_shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3490, - "src": "1697:23:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3406, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1697:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1673:48:10" - }, - "returnParameters": { - "id": 3411, - "nodeType": "ParameterList", - "parameters": [], - "src": "1741:0:10" - }, - "scope": 3842, - "src": "1654:929:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3542, - "nodeType": "Block", - "src": "2965:553:10", - "statements": [ - { - "assignments": [ - 3500 - ], - "declarations": [ - { - "constant": false, - "id": 3500, - "name": "currentShifter", - "nodeType": "VariableDeclaration", - "scope": 3542, - "src": "3027:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3499, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3027:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3504, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3501, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3052:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3503, - "indexExpression": { - "argumentTypes": null, - "id": 3502, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3067:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3052:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3027:54:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3506, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3099:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3508, - "indexExpression": { - "argumentTypes": null, - "id": 3507, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3114:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3099:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3510, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3140:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3132:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3132:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3099:45:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206e6f742072656769737465726564", - "id": 3513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3146:22:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - }, - "value": "token not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_377f1218920eabb8c88590b168b45e371255b51a019d9ffaacd5a49d2bf4672a", - "typeString": "literal_string \"token not registered\"" - } - ], - "id": 3505, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3091:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3091:78:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3515, - "nodeType": "ExpressionStatement", - "src": "3091:78:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3519, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "3236:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3520, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "3249:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3516, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "3218:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4926, - "src": "3218:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3218:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3522, - "nodeType": "ExpressionStatement", - "src": "3218:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3526, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "3334:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3527, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3347:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3523, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "3316:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "append", - "nodeType": "MemberAccess", - "referencedDeclaration": 4958, - "src": "3316:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3316:50:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3529, - "nodeType": "ExpressionStatement", - "src": "3316:50:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3534, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3530, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "3377:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3532, - "indexExpression": { - "argumentTypes": null, - "id": 3531, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3392:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3377:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3533, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3409:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3377:50:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3535, - "nodeType": "ExpressionStatement", - "src": "3377:50:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3537, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3492, - "src": "3461:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3538, - "name": "currentShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3500, - "src": "3476:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3539, - "name": "_newShifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3494, - "src": "3492:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3536, - "name": "LogShifterUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3388, - "src": "3443:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address,address)" - } - }, - "id": 3540, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3443:68:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3541, - "nodeType": "EmitStatement", - "src": "3438:73:10" - } - ] - }, - "documentation": "@notice Allow the owner to update the shifter address for a given\n ERC20Shifted token contract.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.\n @param _newShifterAddress The updated address of the Shifter contract.", - "id": 3543, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3497, - "modifierName": { - "argumentTypes": null, - "id": 3496, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "2955:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2955:9:10" - } - ], - "name": "updateShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3495, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3492, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3543, - "src": "2895:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2895:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3494, - "name": "_newShifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3543, - "src": "2918:26:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3493, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2918:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2894:51:10" - }, - "returnParameters": { - "id": 3498, - "nodeType": "ParameterList", - "parameters": [], - "src": "2965:0:10" - }, - "scope": 3842, - "src": "2872:646:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3612, - "nodeType": "Block", - "src": "3781:630:10", - "statements": [ - { - "assignments": [ - 3551 - ], - "declarations": [ - { - "constant": false, - "id": 3551, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3612, - "src": "3824:20:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3824:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3555, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3552, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "3847:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3554, - "indexExpression": { - "argumentTypes": null, - "id": 3553, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "3861:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3847:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3824:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3557, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "3887:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3559, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3911:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3903:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3560, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3887:28:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73796d626f6c206e6f742072656769737465726564", - "id": 3562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3917:23:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - }, - "value": "symbol not registered" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_15c19842953366f5a7f2416f38670f4fe2e5f411e47ecf3570dc2decccb67bba", - "typeString": "literal_string \"symbol not registered\"" - } - ], - "id": 3556, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3879:7:10", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3879:62:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3564, - "nodeType": "ExpressionStatement", - "src": "3879:62:10" - }, - { - "assignments": [ - 3566 - ], - "declarations": [ - { - "constant": false, - "id": 3566, - "name": "shifterAddress", - "nodeType": "VariableDeclaration", - "scope": 3612, - "src": "3987:22:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3565, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3987:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3570, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3567, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "4012:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3569, - "indexExpression": { - "argumentTypes": null, - "id": 3568, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4027:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4012:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3987:53:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3571, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "4087:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3573, - "indexExpression": { - "argumentTypes": null, - "id": 3572, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4102:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4087:28:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4126:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4118:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4118:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4087:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3578, - "nodeType": "ExpressionStatement", - "src": "4087:43:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3579, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "4140:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3581, - "indexExpression": { - "argumentTypes": null, - "id": 3580, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "4154:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4140:22:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3583, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4173:3:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4165:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3584, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4165:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4140:37:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3586, - "nodeType": "ExpressionStatement", - "src": "4140:37:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3590, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "4205:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3591, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3566, - "src": "4218:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3587, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "4187:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4926, - "src": "4187:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4187:46:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3593, - "nodeType": "ExpressionStatement", - "src": "4187:46:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3597, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "4261:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3598, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4279:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3594, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "4243:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "remove", - "nodeType": "MemberAccess", - "referencedDeclaration": 4926, - "src": "4243:17:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$__$", - "typeString": "function (struct LinkedList.List storage pointer,address)" - } - }, - "id": 3599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4243:49:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3600, - "nodeType": "ExpressionStatement", - "src": "4243:49:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3601, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "4302:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4317:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "4302:16:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3604, - "nodeType": "ExpressionStatement", - "src": "4302:16:10" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3606, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "4357:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3607, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "4366:7:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - { - "argumentTypes": null, - "id": 3608, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "4375:12:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3609, - "name": "shifterAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3566, - "src": "4389:14:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3605, - "name": "LogShifterDeregistered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3380, - "src": "4334:22:10", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_address_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,address,address)" - } - }, - "id": 3610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4334:70:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3611, - "nodeType": "EmitStatement", - "src": "4329:75:10" - } - ] - }, - "documentation": "@notice Allows the owner to remove the shifter address for a given\n ERC20shifter token contract.\n\n /// @param _symbol The symbol of the token to deregister.", - "id": 3613, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3548, - "modifierName": { - "argumentTypes": null, - "id": 3547, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "3771:9:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3771:9:10" - } - ], - "name": "removeShifter", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3546, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3545, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 3613, - "src": "3737:23:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3544, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3737:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3736:25:10" - }, - "returnParameters": { - "id": 3549, - "nodeType": "ParameterList", - "parameters": [], - "src": "3781:0:10" - }, - "scope": 3842, - "src": "3714:697:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3705, - "nodeType": "Block", - "src": "4574:648:10", - "statements": [ - { - "assignments": [ - 3624 - ], - "declarations": [ - { - "constant": false, - "id": 3624, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4584:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3623, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4584:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3625, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "4584:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3626, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "4611:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4621:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4611:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3638, - "nodeType": "Block", - "src": "4674:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3634, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4688:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3635, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3617, - "src": "4696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4688:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3637, - "nodeType": "ExpressionStatement", - "src": "4688:14:10" - } - ] - }, - "id": 3639, - "nodeType": "IfStatement", - "src": "4607:106:10", - "trueBody": { - "id": 3633, - "nodeType": "Block", - "src": "4624:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3629, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4638:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3630, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "4646:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4638:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3632, - "nodeType": "ExpressionStatement", - "src": "4638:19:10" - } - ] - } - }, - { - "assignments": [ - 3643 - ], - "declarations": [ - { - "constant": false, - "id": 3643, - "name": "shifters", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4723:25:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3641, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4723:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3642, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4723:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3649, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3647, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4765:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "4751:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3644, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4755:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3645, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4755:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3648, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4751:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4723:48:10" - }, - { - "assignments": [ - 3651 - ], - "declarations": [ - { - "constant": false, - "id": 3651, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4831:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3650, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4831:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3653, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3652, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4843:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "4831:13:10" - }, - { - "assignments": [ - 3655 - ], - "declarations": [ - { - "constant": false, - "id": 3655, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3705, - "src": "4854:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3654, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4854:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3657, - "initialValue": { - "argumentTypes": null, - "id": 3656, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3615, - "src": "4869:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4854:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3662, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3658, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "4889:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4905:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3659, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4897:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3661, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4897:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4889:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3671, - "nodeType": "IfStatement", - "src": "4885:85:10", - "trueBody": { - "id": 3670, - "nodeType": "Block", - "src": "4909:61:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3663, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "4923:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3666, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "4947:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3664, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "4930:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5028, - "src": "4930:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3667, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4930:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4923:36:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3669, - "nodeType": "ExpressionStatement", - "src": "4923:36:10" - } - ] - } - }, - { - "body": { - "id": 3701, - "nodeType": "Block", - "src": "4998:193:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3679, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3675, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5016:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3677, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5032:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3676, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5024:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5024:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5016:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3682, - "nodeType": "IfStatement", - "src": "5012:62:10", - "trueBody": { - "id": 3681, - "nodeType": "Block", - "src": "5036:38:10", - "statements": [ - { - "id": 3680, - "nodeType": "Break", - "src": "5054:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3683, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "5087:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3685, - "indexExpression": { - "argumentTypes": null, - "id": 3684, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "5096:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5087:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3686, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5101:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5087:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3688, - "nodeType": "ExpressionStatement", - "src": "5087:18:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3695, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3689, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5119:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3692, - "name": "shifterList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3393, - "src": "5142:11:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3693, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3655, - "src": "5155:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3690, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "5126:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5066, - "src": "5126:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3694, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5126:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5119:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3696, - "nodeType": "ExpressionStatement", - "src": "5119:41:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3697, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "5174:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5179:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "5174:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3700, - "nodeType": "ExpressionStatement", - "src": "5174:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3672, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3651, - "src": "4987:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3673, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3624, - "src": "4991:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4987:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3702, - "nodeType": "WhileStatement", - "src": "4980:211:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3703, - "name": "shifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3643, - "src": "5207:8:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3622, - "id": 3704, - "nodeType": "Return", - "src": "5200:15:10" - } - ] - }, - "documentation": "@dev To get all the registered shifters use count = 0.", - "id": 3706, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifters", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3615, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3706, - "src": "4501:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3614, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4501:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3617, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3706, - "src": "4517:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3616, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4517:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4500:32:10" - }, - "returnParameters": { - "id": 3622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3621, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3706, - "src": "4556:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4556:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3620, - "length": null, - "nodeType": "ArrayTypeName", - "src": "4556:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4555:18:10" - }, - "scope": 3842, - "src": "4480:742:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3798, - "nodeType": "Block", - "src": "5396:673:10", - "statements": [ - { - "assignments": [ - 3717 - ], - "declarations": [ - { - "constant": false, - "id": 3717, - "name": "count", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5406:13:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3716, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5406:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3718, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "5406:13:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3719, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3710, - "src": "5433:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5443:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "5433:11:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3731, - "nodeType": "Block", - "src": "5496:39:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3727, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5510:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3728, - "name": "_count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3710, - "src": "5518:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5510:14:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3730, - "nodeType": "ExpressionStatement", - "src": "5510:14:10" - } - ] - }, - "id": 3732, - "nodeType": "IfStatement", - "src": "5429:106:10", - "trueBody": { - "id": 3726, - "nodeType": "Block", - "src": "5446:44:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3722, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5460:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3723, - "name": "numShifters", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3391, - "src": "5468:11:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5460:19:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3725, - "nodeType": "ExpressionStatement", - "src": "5460:19:10" - } - ] - } - }, - { - "assignments": [ - 3736 - ], - "declarations": [ - { - "constant": false, - "id": 3736, - "name": "shiftedTokens", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5545:30:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3734, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5545:7:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3735, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5545:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3742, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3740, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5592:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "5578:13:10", - "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_$", - "typeString": "function (uint256) pure returns (address[] memory)" - }, - "typeName": { - "baseType": { - "id": 3737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5582:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3738, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5582:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "id": 3741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5578:20:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory", - "typeString": "address[] memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5545:53:10" - }, - { - "assignments": [ - 3744 - ], - "declarations": [ - { - "constant": false, - "id": 3744, - "name": "n", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5658:9:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3743, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5658:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3746, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5670:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "5658:13:10" - }, - { - "assignments": [ - 3748 - ], - "declarations": [ - { - "constant": false, - "id": 3748, - "name": "next", - "nodeType": "VariableDeclaration", - "scope": 3798, - "src": "5681:12:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3747, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5681:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3750, - "initialValue": { - "argumentTypes": null, - "id": 3749, - "name": "_start", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3708, - "src": "5696:6:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5681:21:10" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3751, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5716:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5732:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3752, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5724:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3754, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5724:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5716:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3764, - "nodeType": "IfStatement", - "src": "5712:90:10", - "trueBody": { - "id": 3763, - "nodeType": "Block", - "src": "5736:66:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3761, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3756, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5750:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3759, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "5774:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - ], - "expression": { - "argumentTypes": null, - "id": 3757, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "5757:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3758, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "begin", - "nodeType": "MemberAccess", - "referencedDeclaration": 5028, - "src": "5757:16:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer) view returns (address)" - } - }, - "id": 3760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5757:34:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5750:41:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3762, - "nodeType": "ExpressionStatement", - "src": "5750:41:10" - } - ] - } - }, - { - "body": { - "id": 3794, - "nodeType": "Block", - "src": "5830:203:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3772, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3768, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5848:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 3770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5864:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5856:7:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3771, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5856:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5848:18:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3775, - "nodeType": "IfStatement", - "src": "5844:62:10", - "trueBody": { - "id": 3774, - "nodeType": "Block", - "src": "5868:38:10", - "statements": [ - { - "id": 3773, - "nodeType": "Break", - "src": "5886:5:10" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3776, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "5919:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 3778, - "indexExpression": { - "argumentTypes": null, - "id": 3777, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "5933:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5919:16:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3779, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5938:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5919:23:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3781, - "nodeType": "ExpressionStatement", - "src": "5919:23:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3782, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5956:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3785, - "name": "shiftedTokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3395, - "src": "5979:16:10", - "typeDescriptions": { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - } - }, - { - "argumentTypes": null, - "id": 3786, - "name": "next", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3748, - "src": "5997:4:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_List_$4687_storage", - "typeString": "struct LinkedList.List storage ref" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3783, - "name": "LinkedList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5091, - "src": "5963:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_LinkedList_$5091_$", - "typeString": "type(library LinkedList)" - } - }, - "id": 3784, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "next", - "nodeType": "MemberAccess", - "referencedDeclaration": 5066, - "src": "5963:15:10", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_struct$_List_$4687_storage_ptr_$_t_address_$returns$_t_address_$", - "typeString": "function (struct LinkedList.List storage pointer,address) view returns (address)" - } - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5963:39:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5956:46:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3789, - "nodeType": "ExpressionStatement", - "src": "5956:46:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3790, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "6016:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6021:1:10", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6016:6:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3793, - "nodeType": "ExpressionStatement", - "src": "6016:6:10" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3765, - "name": "n", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "5819:1:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3766, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3717, - "src": "5823:5:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5819:9:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3795, - "nodeType": "WhileStatement", - "src": "5812:221:10" - }, - { - "expression": { - "argumentTypes": null, - "id": 3796, - "name": "shiftedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "6049:13:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "functionReturnParameters": 3715, - "id": 3797, - "nodeType": "Return", - "src": "6042:20:10" - } - ] - }, - "documentation": "@dev To get all the registered shifted tokens use count = 0.", - "id": 3799, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShiftedTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3711, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3708, - "name": "_start", - "nodeType": "VariableDeclaration", - "scope": 3799, - "src": "5323:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5323:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3710, - "name": "_count", - "nodeType": "VariableDeclaration", - "scope": 3799, - "src": "5339:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3709, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5339:7:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5322:32:10" - }, - "returnParameters": { - "id": 3715, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3714, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3799, - "src": "5378:16:10", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 3712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5378:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3713, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5378:9:10", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5377:18:10" - }, - "scope": 3842, - "src": "5297:772:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3812, - "nodeType": "Block", - "src": "6354:63:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3807, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "6380:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3809, - "indexExpression": { - "argumentTypes": null, - "id": 3808, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3801, - "src": "6395:13:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6380:29:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3806, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6371:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6371:39:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3805, - "id": 3811, - "nodeType": "Return", - "src": "6364:46:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n contract address.\n\n /// @param _tokenAddress The address of the ERC20Shifted token contract.", - "id": 3813, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterByToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3802, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3801, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "6298:21:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3800, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6298:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6297:23:10" - }, - "returnParameters": { - "id": 3805, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3804, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3813, - "src": "6344:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3803, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6344:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6343:10:10" - }, - "scope": 3842, - "src": "6271:146:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3828, - "nodeType": "Block", - "src": "6698:77:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3821, - "name": "shifterByToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3399, - "src": "6724:14:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 3825, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3822, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "6739:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3824, - "indexExpression": { - "argumentTypes": null, - "id": 3823, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3815, - "src": "6753:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6739:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6724:43:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3820, - "name": "IShifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2901, - "src": "6715:8:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IShifter_$2901_$", - "typeString": "type(contract IShifter)" - } - }, - "id": 3826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6715:53:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "functionReturnParameters": 3819, - "id": 3827, - "nodeType": "Return", - "src": "6708:60:10" - } - ] - }, - "documentation": "@notice Returns the Shifter address for the given ERC20Shifted token\n symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract.", - "id": 3829, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getShifterBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3815, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "6635:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3814, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6635:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6634:30:10" - }, - "returnParameters": { - "id": 3819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3818, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3829, - "src": "6688:8:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - }, - "typeName": { - "contractScope": null, - "id": 3817, - "name": "IShifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2901, - "src": "6688:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IShifter_$2901", - "typeString": "contract IShifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6687:10:10" - }, - "scope": 3842, - "src": "6607:168:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 3840, - "nodeType": "Block", - "src": "7054:51:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3836, - "name": "tokenBySymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3403, - "src": "7071:13:10", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_address_$", - "typeString": "mapping(string memory => address)" - } - }, - "id": 3838, - "indexExpression": { - "argumentTypes": null, - "id": 3837, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3831, - "src": "7085:12:10", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string calldata" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7071:27:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 3835, - "id": 3839, - "nodeType": "Return", - "src": "7064:34:10" - } - ] - }, - "documentation": "@notice Returns the ERC20Shifted address for the given token symbol.\n\n /// @param _tokenSymbol The symbol of the ERC20Shifted token contract to\n lookup.", - "id": 3841, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getTokenBySymbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3832, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3831, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 3841, - "src": "6992:28:10", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3830, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6992:6:10", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6991:30:10" - }, - "returnParameters": { - "id": 3835, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3834, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3841, - "src": "7045:7:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3833, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7045:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7044:9:10" - }, - "scope": 3842, - "src": "6966:139:10", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 3843, - "src": "268:6839:10" - } - ], - "src": "0:7107:10" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -13146,91 +424,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T06:30:23.228Z", - "devdoc": { - "methods": { - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "getShiftedTokens(address,uint256)": { - "details": "To get all the registered shifted tokens use count = 0." - }, - "getShifterBySymbol(string)": { - "params": { - "_tokenSymbol": "The symbol of the ERC20Shifted token contract." - } - }, - "getShifterByToken(address)": { - "params": { - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - }, - "getShifters(address,uint256)": { - "details": "To get all the registered shifters use count = 0." - }, - "getTokenBySymbol(string)": { - "params": { - "_tokenSymbol": "The symbol of the ERC20Shifted token contract to lookup." - } - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { - "return": "the address of the owner." - }, - "removeShifter(string)": { - "params": { - "_symbol": "The symbol of the token to deregister." - } - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "setShifter(address,address)": { - "params": { - "_shifterAddress": "The address of the Shifter contract.", - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - }, - "updateShifter(address,address)": { - "params": { - "_newShifterAddress": "The updated address of the Shifter contract.", - "_tokenAddress": "The address of the ERC20Shifted token contract." - } - } - } - }, - "userdoc": { - "methods": { - "getShifterBySymbol(string)": { - "notice": "Returns the Shifter address for the given ERC20Shifted token symbol. " - }, - "getShifterByToken(address)": { - "notice": "Returns the Shifter address for the given ERC20Shifted token contract address. " - }, - "getTokenBySymbol(string)": { - "notice": "Returns the ERC20Shifted address for the given token symbol. " - }, - "removeShifter(string)": { - "notice": "Allows the owner to remove the shifter address for a given ERC20shifter token contract. " - }, - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "setShifter(address,address)": { - "notice": "Allow the owner to set the shifter address for a given ERC20Shifted token contract. " - }, - "updateShifter(address,address)": { - "notice": "Allow the owner to update the shifter address for a given ERC20Shifted token contract. " - } - }, - "notice": "ShifterRegistry is a mapping from assets to their associated ERC20Shifted and Shifter contracts." - } + "updatedAt": "2019-08-02T06:30:23.228Z" } \ No newline at end of file diff --git a/build/testnet/ZECShifter.json b/build/testnet/ZECShifter.json index a39e3270..e390608a 100644 --- a/build/testnet/ZECShifter.json +++ b/build/testnet/ZECShifter.json @@ -450,11759 +450,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_nextMintAuthority\",\"type\":\"address\"}],\"name\":\"updateMintAuthority\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextTokenOwner\",\"type\":\"address\"}],\"name\":\"transferTokenOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFee\",\"type\":\"uint16\"}],\"name\":\"updateFee\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"}],\"name\":\"hashForSignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"status\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"shiftOut\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minShiftAmount\",\"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\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"mintAuthority\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nextShiftID\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_pHash\",\"type\":\"bytes32\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"shiftIn\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_signedMessageHash\",\"type\":\"bytes32\"},{\"name\":\"_sig\",\"type\":\"bytes\"}],\"name\":\"verifySignature\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"name\":\"\",\"type\":\"uint16\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_minShiftOutAmount\",\"type\":\"uint256\"}],\"name\":\"updateMinimumShiftOutAmount\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_nextFeeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_feeRecipient\",\"type\":\"address\"},{\"name\":\"_mintAuthority\",\"type\":\"address\"},{\"name\":\"_fee\",\"type\":\"uint16\"},{\"name\":\"_minShiftOutAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"}],\"name\":\"LogShiftIn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_to\",\"type\":\"bytes\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_shiftID\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"_indexedTo\",\"type\":\"bytes\"}],\"name\":\"LogShiftOut\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"params\":{\"_amount\":\"The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)\",\"_nHash\":\"(nonce hash) The hash of the nonce, amount and pHash.\",\"_pHash\":\"(payload hash) The hash of the payload associated with the shift.\",\"_sig\":\"The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\"}},\"shiftOut(bytes,uint256)\":{\"params\":{\"_amount\":\"The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)\",\"_to\":\"The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address.\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"updateFee(uint16)\":{\"params\":{\"_nextFee\":\"The new fee for minting and burning.\"}},\"updateFeeRecipient(address)\":{\"params\":{\"_nextFeeRecipient\":\"The address to start paying fees to.\"}},\"updateMinimumShiftOutAmount(uint256)\":{\"params\":{\"_minShiftOutAmount\":\"The new min shiftOut amount.\"}},\"updateMintAuthority(address)\":{\"params\":{\"_nextMintAuthority\":\"The address to start paying fees to.\"}}}},\"userdoc\":{\"methods\":{\"claimTokenOwnership()\":{\"notice\":\"Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function.\"},\"hashForSignature(bytes32,uint256,address,bytes32)\":{\"notice\":\"hashForSignature hashes the parameters so that they can be signed.\"},\"shiftIn(bytes32,uint256,bytes32,bytes)\":{\"notice\":\"shiftIn mints tokens after taking a fee for the `_feeRecipient`. \"},\"shiftOut(bytes,uint256)\":{\"notice\":\"shiftOut burns tokens after taking a fee for the `_feeRecipient`. \"},\"transferTokenOwnership(address)\":{\"notice\":\"Allow the owner to update the owner of the ERC20Shifted token.\"},\"updateFee(uint16)\":{\"notice\":\"Allow the owner to update the fee. \"},\"updateFeeRecipient(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"updateMinimumShiftOutAmount(uint256)\":{\"notice\":\"Allow the owner to update the minimum shiftOut amount. \"},\"updateMintAuthority(address)\":{\"notice\":\"Allow the owner to update the fee recipient. \"},\"verifySignature(bytes32,bytes)\":{\"notice\":\"verifySignature checks the the provided signature matches the provided parameters.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":\"ZECShifter\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol\":{\"keccak256\":\"0x8097e68ae333d2cc76defb76a28056bb53e243163472e372632e5557fb1a6a8a\",\"urls\":[\"bzzr://5b1e3a1bfd5c67de687303fec57de914359ffd97bfc890eb98dde52b0b6feda8\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol\":{\"keccak256\":\"0x2466e251b3ab27d508ac2f0de523e03cfaf00b6c4f2e4fa382db28940f4bc8d8\",\"urls\":[\"bzzr://b80cf1a642065ce8b1172527564947598e8d1af6640f9dfcbf36040e701497fc\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0x7b0d1ee8869ddd89976df0d781d16f24e49db9528fcc49c31b164b0d3c936bda\",\"urls\":[\"bzzr://dcd07ff226fff30843e7b28c069270451a9bd4a49809e78c42e17a23c52c72e4\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x608060405260008054600160a01b60ff0219167402000000000000000000000000000000000000000017815560065534801561003a57600080fd5b5060405160a08062001be9833981018060405260a081101561005b57600080fd5b50805160208201516040808401516060850151608090950151600080546001600160a01b03191633178082559351959694959294939192879287928792879287926001600160a01b0391909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36001819055600280546001600160a01b038088166001600160a01b03199283161790925560038054928616929091169190911790556004805461ffff84167401000000000000000000000000000000000000000002600160a01b61ffff021990911617905561014384610152602090811b901c565b50505050505050505050610273565b61016061026260201b60201c565b6101cb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6001600160a01b03811661024057604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331490565b61196680620002836000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063daca6f781161007c578063daca6f781461040c578063ddca3f43146104b9578063e58732a7146104d8578063f160d369146104f5578063f2fde38b1461051b578063fc0c546a1461054157610142565b80638da5cb5b146103335780638f32d59b1461033b5780639340b21e14610343578063ab595e0c1461034b578063bb4a1d8c1461035357610142565b80635219a5661161010a5780635219a566146101e257806352ad0d5e1461022c57806354fd4d501461025d578063715018a61461027b5780638723c3771461028357806387c0b8811461032b57610142565b80630130a33b1461014757806310731a651461016f57806321e6b53d146101775780632c6cda931461019d57806346904840146101be575b600080fd5b61016d6004803603602081101561015d57600080fd5b50356001600160a01b0316610549565b005b61016d6105b5565b61016d6004803603602081101561018d57600080fd5b50356001600160a01b031661061f565b61016d600480360360208110156101b357600080fd5b503561ffff16610728565b6101c66107a5565b604080516001600160a01b039092168252519081900360200190f35b61021a600480360360808110156101f857600080fd5b508035906020810135906001600160a01b0360408201351690606001356107b4565b60408051918252519081900360200190f35b6102496004803603602081101561024257600080fd5b5035610804565b604080519115158252519081900360200190f35b610265610819565b6040805160ff9092168252519081900360200190f35b61016d610829565b61021a6004803603604081101561029957600080fd5b8101906020810181356401000000008111156102b457600080fd5b8201836020820111156102c657600080fd5b803590602001918460018302840111640100000000831117156102e857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506108bd915050565b61021a610b9d565b6101c6610ba3565b610249610bb2565b6101c6610bc3565b61021a610bd2565b61021a6004803603608081101561036957600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd8945050505050565b6102496004803603604081101561042257600080fd5b8135919081019060408101602082013564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610eee945050505050565b6104c1610f12565b6040805161ffff9092168252519081900360200190f35b61016d600480360360208110156104ee57600080fd5b5035610f23565b61016d6004803603602081101561050b57600080fd5b50356001600160a01b0316610f72565b61016d6004803603602081101561053157600080fd5b50356001600160a01b031661103c565b6101c6611092565b610551610bb2565b6105935760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060557600080fd5b505af1158015610619573d6000803e3d6000fd5b50505050565b610627610bb2565b6106695760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b60025460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b5050505050565b610730610bb2565b6107725760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6004805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6004546001600160a01b031681565b60025460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60056020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b610831610bb2565b6108735760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156109195760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60015482101561095d57604051600160e51b62461bcd02815260040180806020018281038252602f8152602001806118a8602f913960400191505060405180910390fd5b60045460009061098d9061271090610981908690600160a01b900461ffff166110a1565b9063ffffffff61110416565b60025460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830187905251921693506340c10f19925060448082019260009290919082900301818387803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050506000610a87828561117190919063ffffffff16565b9050846040518082805190602001908083835b60208310610ab95780518252601f199092019160209182019101610a9a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610b4f578181015183820152602001610b37565b50505050905090810190601f168015610b7c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36006805460010190559150505b92915050565b60015481565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6003546001600160a01b031681565b60065481565b600080610be7868633876107b4565b60008181526005602052604090205490915060ff1615610c515760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610c5b8184610eee565b610d6557610cde6040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610ca1836111d1565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610cd9610cd48689611352565b6114e4565b611669565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d2a578181015183820152602001610d12565b50505050905090810190601f168015610d575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600560205260408120805460ff19166001179055600454610da6906127109061098190899061ffff600160a01b9091041663ffffffff6110a116565b90506000610dba878363ffffffff61117116565b60025460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830188905251921693506340c10f19925060448082019260009290919082900301818387803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b50506006546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600680546001019055979650505050505050565b6000610efa8383611352565b6003546001600160a01b039182169116149392505050565b600454600160a01b900461ffff1681565b610f2b610bb2565b610f6d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600155565b610f7a610bb2565b610fbc5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6001600160a01b03811661101a5760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b611044610bb2565b6110865760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b61108f816117ba565b50565b6002546001600160a01b031681565b6000826110b057506000610b97565b828202828482816110bd57fe5b04146110fd57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806118d76021913960400191505060405180910390fd5b9392505050565b600080821161115d5760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161116857fe5b04949350505050565b6000828211156111cb5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061123457fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061126057fe5b60200101906001600160f81b031916908160001a90535060005b60208110156113495782600485836020811061129257fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106112b257fe5b602001015160f81c60f81b8282600202600201815181106112cf57fe5b60200101906001600160f81b031916908160001a905350828482602081106112f357fe5b1a60f81b600f60f81b1660f81c60ff168151811061130d57fe5b602001015160f81c60f81b82826002026003018151811061132a57fe5b60200101906001600160f81b031916908160001a90535060010161127a565b50949350505050565b600081516041146113ad5760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806119186023913960400191505060405180910390fd5b8060ff16601b1415801561143957508060ff16601c14155b1561147857604051600160e51b62461bcd02815260040180806020018281038252602481526020018061185e6024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156114cf573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061154e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061157a57fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611349578260048583600c01602081106115af57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106115cf57fe5b602001015160f81c60f81b8282600202600201815181106115ec57fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061161357fe5b1a60f81b600f60f81b1660f81c60ff168151811061162d57fe5b602001015160f81c60f81b82826002026003018151811061164a57fe5b60200101906001600160f81b031916908160001a905350600101611594565b6060848484846040516020018085805190602001908083835b602083106116a15780518252601f199092019160209182019101611682565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116e95780518252601f1990920191602091820191016116ca565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106117315780518252601f199092019160209182019101611712565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106117795780518252601f19909201916020918201910161175a565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661180257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806118826026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a72305820974055346fa28d6a10f126a963f37097e9df0bd9375a530707833e0e346eafd40029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80638da5cb5b116100b8578063daca6f781161007c578063daca6f781461040c578063ddca3f43146104b9578063e58732a7146104d8578063f160d369146104f5578063f2fde38b1461051b578063fc0c546a1461054157610142565b80638da5cb5b146103335780638f32d59b1461033b5780639340b21e14610343578063ab595e0c1461034b578063bb4a1d8c1461035357610142565b80635219a5661161010a5780635219a566146101e257806352ad0d5e1461022c57806354fd4d501461025d578063715018a61461027b5780638723c3771461028357806387c0b8811461032b57610142565b80630130a33b1461014757806310731a651461016f57806321e6b53d146101775780632c6cda931461019d57806346904840146101be575b600080fd5b61016d6004803603602081101561015d57600080fd5b50356001600160a01b0316610549565b005b61016d6105b5565b61016d6004803603602081101561018d57600080fd5b50356001600160a01b031661061f565b61016d600480360360208110156101b357600080fd5b503561ffff16610728565b6101c66107a5565b604080516001600160a01b039092168252519081900360200190f35b61021a600480360360808110156101f857600080fd5b508035906020810135906001600160a01b0360408201351690606001356107b4565b60408051918252519081900360200190f35b6102496004803603602081101561024257600080fd5b5035610804565b604080519115158252519081900360200190f35b610265610819565b6040805160ff9092168252519081900360200190f35b61016d610829565b61021a6004803603604081101561029957600080fd5b8101906020810181356401000000008111156102b457600080fd5b8201836020820111156102c657600080fd5b803590602001918460018302840111640100000000831117156102e857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506108bd915050565b61021a610b9d565b6101c6610ba3565b610249610bb2565b6101c6610bc3565b61021a610bd2565b61021a6004803603608081101561036957600080fd5b8135916020810135916040820135919081019060808101606082013564010000000081111561039757600080fd5b8201836020820111156103a957600080fd5b803590602001918460018302840111640100000000831117156103cb57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bd8945050505050565b6102496004803603604081101561042257600080fd5b8135919081019060408101602082013564010000000081111561044457600080fd5b82018360208201111561045657600080fd5b8035906020019184600183028401116401000000008311171561047857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610eee945050505050565b6104c1610f12565b6040805161ffff9092168252519081900360200190f35b61016d600480360360208110156104ee57600080fd5b5035610f23565b61016d6004803603602081101561050b57600080fd5b50356001600160a01b0316610f72565b61016d6004803603602081101561053157600080fd5b50356001600160a01b031661103c565b6101c6611092565b610551610bb2565b6105935760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b600260009054906101000a90046001600160a01b03166001600160a01b0316634e71e0c86040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561060557600080fd5b505af1158015610619573d6000803e3d6000fd5b50505050565b610627610bb2565b6106695760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b60025460408051600160e01b63f2fde38b0281526001600160a01b0384811660048301529151919092169163f2fde38b91602480830192600092919082900301818387803b1580156106ba57600080fd5b505af11580156106ce573d6000803e3d6000fd5b50505050806001600160a01b03166310731a656040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b5050505050565b610730610bb2565b6107725760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6004805461ffff909216600160a01b0275ffff000000000000000000000000000000000000000019909216919091179055565b6004546001600160a01b031681565b60025460408051602080820197909752808201959095526001600160a01b0391821660608601529216608084015260a0808401919091528151808403909101815260c09092019052805191012090565b60056020526000908152604090205460ff1681565b600054600160a01b900460ff1681565b610831610bb2565b6108735760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60008251600014156109195760408051600160e51b62461bcd02815260206004820152601360248201527f746f206164647265737320697320656d70747900000000000000000000000000604482015290519081900360640190fd5b60015482101561095d57604051600160e51b62461bcd02815260040180806020018281038252602f8152602001806118a8602f913960400191505060405180910390fd5b60045460009061098d9061271090610981908690600160a01b900461ffff166110a1565b9063ffffffff61110416565b60025460408051600160e21b632770a7eb0281523360048201526024810187905290519293506001600160a01b0390911691639dc29fac9160448082019260009290919082900301818387803b1580156109e657600080fd5b505af11580156109fa573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830187905251921693506340c10f19925060448082019260009290919082900301818387803b158015610a5a57600080fd5b505af1158015610a6e573d6000803e3d6000fd5b505050506000610a87828561117190919063ffffffff16565b9050846040518082805190602001908083835b60208310610ab95780518252601f199092019160209182019101610a9a565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390206006547f2275318eaeb892d338c6737eebf5f31747c1eab22b63ccbc00cd93d4e785c11687846040518080602001838152602001828103825284818151815260200191508051906020019080838360005b83811015610b4f578181015183820152602001610b37565b50505050905090810190601f168015610b7c5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a36006805460010190559150505b92915050565b60015481565b6000546001600160a01b031690565b6000546001600160a01b0316331490565b6003546001600160a01b031681565b60065481565b600080610be7868633876107b4565b60008181526005602052604090205490915060ff1615610c515760408051600160e51b62461bcd02815260206004820152601860248201527f6e6f6e6365206861736820616c7265616479207370656e740000000000000000604482015290519081900360640190fd5b610c5b8184610eee565b610d6557610cde6040518060400160405280601a81526020017f696e76616c6964207369676e6174757265202d20686173683a20000000000000815250610ca1836111d1565b6040518060400160405280600a8152602001600160b51b690161039b4b3b732b91d102815250610cd9610cd48689611352565b6114e4565b611669565b604051600160e51b62461bcd0281526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610d2a578181015183820152602001610d12565b50505050905090810190601f168015610d575780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b6000818152600560205260408120805460ff19166001179055600454610da6906127109061098190899061ffff600160a01b9091041663ffffffff6110a116565b90506000610dba878363ffffffff61117116565b60025460408051600160e01b6340c10f190281523360048201526024810184905290519293506001600160a01b03909116916340c10f199160448082019260009290919082900301818387803b158015610e1357600080fd5b505af1158015610e27573d6000803e3d6000fd5b50506002546004805460408051600160e01b6340c10f190281526001600160a01b03928316938101939093526024830188905251921693506340c10f19925060448082019260009290919082900301818387803b158015610e8757600080fd5b505af1158015610e9b573d6000803e3d6000fd5b50506006546040805185815290519193503392507fd79c73d5d7701ff70ab30939dd980af7276ff21617d890ff2ce150f3b5ea3d94919081900360200190a3600680546001019055979650505050505050565b6000610efa8383611352565b6003546001600160a01b039182169116149392505050565b600454600160a01b900461ffff1681565b610f2b610bb2565b610f6d5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b600155565b610f7a610bb2565b610fbc5760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b6001600160a01b03811661101a5760408051600160e51b62461bcd02815260206004820152601b60248201527f66656520726563697069656e742063616e6e6f74206265203078300000000000604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b611044610bb2565b6110865760408051600160e51b62461bcd02815260206004820181905260248201526000805160206118f8833981519152604482015290519081900360640190fd5b61108f816117ba565b50565b6002546001600160a01b031681565b6000826110b057506000610b97565b828202828482816110bd57fe5b04146110fd57604051600160e51b62461bcd0281526004018080602001828103825260218152602001806118d76021913960400191505060405180910390fd5b9392505050565b600080821161115d5760408051600160e51b62461bcd02815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f000000000000604482015290519081900360640190fd5b600082848161116857fe5b04949350505050565b6000828211156111cb5760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b302602082015281516042808252608082019093526060928492918491602082018180388339019050509050600160fc1b6003028160008151811061123457fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061126057fe5b60200101906001600160f81b031916908160001a90535060005b60208110156113495782600485836020811061129257fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106112b257fe5b602001015160f81c60f81b8282600202600201815181106112cf57fe5b60200101906001600160f81b031916908160001a905350828482602081106112f357fe5b1a60f81b600f60f81b1660f81c60ff168151811061130d57fe5b602001015160f81c60f81b82826002026003018151811061132a57fe5b60200101906001600160f81b031916908160001a90535060010161127a565b50949350505050565b600081516041146113ad5760408051600160e51b62461bcd02815260206004820152601d60248201527f7369676e61747572652773206c656e67746820697320696e76616c6964000000604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561142157604051600160e51b62461bcd0281526004018080602001828103825260238152602001806119186023913960400191505060405180910390fd5b8060ff16601b1415801561143957508060ff16601c14155b1561147857604051600160e51b62461bcd02815260040180806020018281038252602481526020018061185e6024913960400191505060405180910390fd5b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156114cf573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b60408051808201825260108152600160811b6f181899199a1a9b1b9c1cb0b131b232b30260208201528151602a80825260608281019094526001600160a01b03851692918491602082018180388339019050509050600160fc1b6003028160008151811061154e57fe5b60200101906001600160f81b031916908160001a905350600160fb1b600f028160018151811061157a57fe5b60200101906001600160f81b031916908160001a90535060005b6014811015611349578260048583600c01602081106115af57fe5b1a60f81b6001600160f81b031916901c60f81c60ff16815181106115cf57fe5b602001015160f81c60f81b8282600202600201815181106115ec57fe5b60200101906001600160f81b031916908160001a905350828482600c016020811061161357fe5b1a60f81b600f60f81b1660f81c60ff168151811061162d57fe5b602001015160f81c60f81b82826002026003018151811061164a57fe5b60200101906001600160f81b031916908160001a905350600101611594565b6060848484846040516020018085805190602001908083835b602083106116a15780518252601f199092019160209182019101611682565b51815160209384036101000a600019018019909216911617905287519190930192870191508083835b602083106116e95780518252601f1990920191602091820191016116ca565b51815160209384036101000a600019018019909216911617905286519190930192860191508083835b602083106117315780518252601f199092019160209182019101611712565b51815160209384036101000a600019018019909216911617905285519190930192850191508083835b602083106117795780518252601f19909201916020918201910161175a565b6001836020036101000a0380198251168184511680821785525050505050509050019450505050506040516020818303038152906040529050949350505050565b6001600160a01b03811661180257604051600160e51b62461bcd0281526004018080602001828103825260268152602001806118826026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b039290921691909117905556fe7369676e6174756572652773207620697320696e207468652077726f6e672072616e67654f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727369676e61747572652773207320697320696e207468652077726f6e672072616e6765a165627a7a72305820974055346fa28d6a10f126a963f37097e9df0bd9375a530707833e0e346eafd40029", - "sourceMap": "8350:259:9:-;;;552:24;;;-1:-1:-1;;;;;;552:24:9;;;;;1435:30;;8387:220;5:2:-1;;;;30:1;27;20:12;5:2;8387:220:9;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;8387:220:9;;;;;;;;;;;;;;;;;;;;657:6:36;:19;;-1:-1:-1;;;;;;657:19:36;666:10;657:19;;;;691:40;;8387:220:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;724:6:36;;;;;691:40;;657:6;;691:40;2169:14:9;:35;;;2214:5;:14;;-1:-1:-1;;;;;2214:14:9;;;-1:-1:-1;;;;;;2214:14:9;;;;;;;2238:13;:30;;;;;;;;;;;;;;;2278:3;:10;;;;;;;-1:-1:-1;;;;;;2278:10:9;;;;;;2298:33;2317:13;2298:18;;;;;:33;;:::i;:::-;2031:307;;;;;8387:220;;;;;8350:259;;3655:274;1018:9:36;:7;;;:9;;:::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3814:33:9;;3806:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3890:12;:32;;-1:-1:-1;;;;;;3890:32:9;-1:-1:-1;;;;;3890:32:9;;;;;;;;;;3655:274::o;1165:90:36:-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;8350:259:9:-;;;;;;;", - "deployedSourceMap": "8350:259:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8350:259:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3103:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3103:125:9;-1:-1:-1;;;;;3103:125:9;;:::i;:::-;;2608:77;;;:::i;2770:187::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2770:187:9;-1:-1:-1;;;;;2770:187:9;;:::i;4055:84::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4055:84:9;;;;:::i;1122:27::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1122:27:9;;;;;;;;;;;;;;7746:209;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7746:209:9;;;;;;;;-1:-1:-1;;;;;7746:209:9;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1283:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1283:37:9;;:::i;:::-;;;;;;;;;;;;;;;;;;552:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1599:137:36;;;:::i;6554:811:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6554:811:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6554:811:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6554:811:9;;;;;;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;6554:811:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6554:811:9;;-1:-1:-1;;6554:811:9;;;-1:-1:-1;6554:811:9;;-1:-1:-1;;6554:811:9:i;630:29::-;;;:::i;814:77:36:-;;;:::i;1165:90::-;;;:::i;847:28:9:-;;;:::i;1435:30::-;;;:::i;4692:1383::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4692:1383:9;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4692:1383:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4692:1383:9;;;;;;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;4692:1383:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4692:1383:9;;-1:-1:-1;4692:1383:9;;-1:-1:-1;;;;;4692:1383:9:i;7478:179::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7478:179:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7478:179:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7478:179:9;;;;;;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;7478:179:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7478:179:9;;-1:-1:-1;7478:179:9;;-1:-1:-1;;;;;7478:179:9:i;1209:17::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3376:134;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3376:134:9;;:::i;3655:274::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3655:274:9;-1:-1:-1;;;;;3655:274:9;;:::i;1885:107:36:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1885:107:36;-1:-1:-1;;;;;1885:107:36;;:::i;738:25:9:-;;;:::i;3103:125::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3187:13:9;:34;;-1:-1:-1;;;;;;3187:34:9;-1:-1:-1;;;;;3187:34:9;;;;;;;;;;3103:125::o;2608:77::-;2656:5;;;;;;;;;-1:-1:-1;;;;;2656:5:9;-1:-1:-1;;;;;2656:20:9;;:22;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2656:22:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2656:22:9;;;;2608:77::o;2770:187::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;2854:5:9;;:49;;;-1:-1:-1;;;;;2854:49:9;;-1:-1:-1;;;;;2854:49:9;;;;;;;;;:5;;;;;:23;;:49;;;;;:5;;:49;;;;;;;:5;;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;2854:49:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2854:49:9;;;;2913:15;-1:-1:-1;;;;;2913:35:9;;:37;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2913:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2913:37:9;;;;2770:187;:::o;4055:84::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;4118:3:9;:14;;;;;;-1:-1:-1;;;4118:14:9;-1:-1:-1;;4118:14:9;;;;;;;;;4055:84::o;1122:27::-;;;-1:-1:-1;;;;;1122:27:9;;:::o;7746:209::-;7927:5;;7891:56;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7927:5:9;;;7891:56;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7891:56:9;;;;;;7881:67;;;;;;7746:209::o;1283:37::-;;;;;;;;;;;;;;;:::o;552:24::-;;;-1:-1:-1;;;552:24:9;;;;;:::o;1599:137:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1697:1;1681:6;;1660:40;;-1:-1:-1;;;;;1681:6:36;;;;1660:40;;1697:1;;1660:40;1727:1;1710:19;;-1:-1:-1;;;;;;1710:19:36;;;1599:137::o;6554:811:9:-;6623:7;6797:3;:10;6811:1;6797:15;;6789:47;;;;;-1:-1:-1;;;;;6789:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6865:14;;6854:7;:25;;6846:85;;;;-1:-1:-1;;;;;6846:85:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7018:3;;6983:19;;7005:40;;619:5;;7006:16;;:7;;-1:-1:-1;;;7018:3:9;;;;7006:11;:16::i;:::-;7005:22;:40;:22;:40;:::i;:::-;7055:5;;:31;;;-1:-1:-1;;;;;7055:31:9;;7066:10;7055:31;;;;;;;;;;;;6983:62;;-1:-1:-1;;;;;;7055:5:9;;;;:10;;:31;;;;;:5;;:31;;;;;;;;:5;;:31;;;5:2:-1;;;;30:1;27;20:12;5:2;7055:31:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;7096:5:9;;7107:12;;;7096:37;;;-1:-1:-1;;;;;7096:37:9;;-1:-1:-1;;;;;7107:12:9;;;7096:37;;;;;;;;;;;;;;:5;;;-1:-1:-1;7096:10:9;;-1:-1:-1;7096:37:9;;;;;:5;;:37;;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;7096:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7096:37:9;;;;7189:21;7213:24;7225:11;7213:7;:11;;:24;;;;:::i;:::-;7189:48;;7297:3;7252:49;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;7252:49:9;;;;;;;;;;;;;;;;7284:11;;7252:49;7264:3;7269:13;7252:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7252:49:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7311:11;:16;;7326:1;7311:16;;;7345:13;-1:-1:-1;;6554:811:9;;;;;:::o;630:29::-;;;;:::o;814:77:36:-;852:7;878:6;-1:-1:-1;;;;;878:6:36;814:77;:::o;1165:90::-;1205:4;1242:6;-1:-1:-1;;;;;1242:6:36;1228:10;:20;;1165:90::o;847:28:9:-;;;-1:-1:-1;;;;;847:28:9;;:::o;1435:30::-;;;;:::o;4692:1383::-;4793:7;4840:25;4868:53;4885:6;4893:7;4902:10;4914:6;4868:16;:53::i;:::-;4939:25;;;;:6;:25;;;;;;4840:81;;-1:-1:-1;4939:25:9;;:34;4931:71;;;;;-1:-1:-1;;;;;4931:71:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;5017:40;5033:17;5052:4;5017:15;:40::i;:::-;5012:539;;5274:252;;;;;;;;;;;;;;;;;;5357:37;5376:17;5357:18;:37::i;:::-;5274:252;;;;;;;;;;;;;-1:-1:-1;;;;;5274:252:9;;;5450:58;5469:38;5483:17;5502:4;5469:13;:38::i;:::-;5450:18;:58::i;:::-;5274:11;:252::i;:::-;5250:290;;-1:-1:-1;;;;;5250:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5250:290:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5012:539;5560:25;;;;:6;:25;;;;;:32;;-1:-1:-1;;5560:32:9;5588:4;5560:32;;;5717:3;;5704:40;;619:5;;5705:16;;:7;;5717:3;-1:-1:-1;;;5717:3:9;;;;5705:16;:11;:16;:::i;5704:40::-;5682:62;-1:-1:-1;5754:22:9;5779:24;:7;5682:62;5779:24;:11;:24;:::i;:::-;5813:5;;:38;;;-1:-1:-1;;;;;5813:38:9;;5824:10;5813:38;;;;;;;;;;;;5754:49;;-1:-1:-1;;;;;;5813:5:9;;;;:10;;:38;;;;;:5;;:38;;;;;;;;:5;;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;5813:38:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5861:5:9;;5872:12;;;5861:37;;;-1:-1:-1;;;;;5861:37:9;;-1:-1:-1;;;;;5872:12:9;;;5861:37;;;;;;;;;;;;;;:5;;;-1:-1:-1;5861:10:9;;-1:-1:-1;5861:37:9;;;;;:5;;:37;;;;;;;;:5;;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;5861:37:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;5998:11:9;;5959:51;;;;;;;;5998:11;;-1:-1:-1;5970:10:9;;-1:-1:-1;5959:51:9;;;;;;;;;;6020:11;:16;;6035:1;6020:16;;;6054:14;4692:1383;-1:-1:-1;;;;;;;4692:1383:9:o;7478:179::-;7571:4;7611:39;7625:18;7645:4;7611:13;:39::i;:::-;7594:13;;-1:-1:-1;;;;;7594:56:9;;;:13;;:56;;7478:179;-1:-1:-1;;;7478:179:9:o;1209:17::-;;;-1:-1:-1;;;1209:17:9;;;;;:::o;3376:134::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;3468:14:9;:35;3376:134::o;3655:274::-;1018:9:36;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;-1:-1:-1;;;;;3814:33:9;;3806:73;;;;;-1:-1:-1;;;;;3806:73:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;3890:12;:32;;-1:-1:-1;;;;;;3890:32:9;-1:-1:-1;;;;;3890:32:9;;;;;;;;;;3655:274::o;1885:107:36:-;1018:9;:7;:9::i;:::-;1010:54;;;;;-1:-1:-1;;;;;1010:54:36;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1010:54:36;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;738:25:9:-;;;-1:-1:-1;;;;;738:25:9;;:::o;1693:458:35:-;1751:7;1991:6;1987:45;;-1:-1:-1;2020:1:35;2013:8;;1987:45;2054:5;;;2058:1;2054;:5;:1;2077:5;;;;;:10;2069:56;;;;-1:-1:-1;;;;;2069:56:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2143:1;1693:458;-1:-1:-1;;;1693:458:35:o;2606:326::-;2664:7;2761:1;2757;:5;2749:44;;;;;-1:-1:-1;;;;;2749:44:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;2803:9;2819:1;2815;:5;;;;;;;2606:326;-1:-1:-1;;;;2606:326:35:o;1274:179::-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;120:484:17:-;254:42;;;;;;;;;;;-1:-1:-1;;;;;254:42:17;;;;326:21;;336:10;326:21;;;;;;;;;179:13;;236:6;;254:42;179:13;;326:21;;;21:6:-1;;104:10;326:21:17;87:34:-1;135:17;;-1:-1;326:21:17;307:40;;-1:-1:-1;;;;;357:3:17;361:1;357:6;;;;;;;;;;;:12;-1:-1:-1;;;;;357:12:17;;;;;;;;;-1:-1:-1;;;;;379:3:17;383:1;379:6;;;;;;;;;;;:12;-1:-1:-1;;;;;379:12:17;;;;;;;;-1:-1:-1;406:6:17;401:169;422:2;418:1;:6;401:169;;;458:8;490:1;478:5;484:1;478:8;;;;;;;;;;-1:-1:-1;;;;;478:13:17;;;;472:20;;467:26;;458:36;;;;;;;;;;;;;;;;445:3;451:1;453;451:3;449:1;:5;445:10;;;;;;;;;;;:49;-1:-1:-1;;;;;445:49:17;;;;;;;;;521:8;541:5;547:1;541:8;;;;;;;;;;552:4;541:15;;;535:22;;530:28;;521:38;;;;;;;;;;;;;;;;508:3;514:1;516;514:3;512:1;:5;508:10;;;;;;;;;;;:51;-1:-1:-1;;;;;508:51:17;;;;;;;;-1:-1:-1;426:3:17;;401:169;;;-1:-1:-1;593:3:17;120:484;-1:-1:-1;;;;120:484:17:o;1229:1968:32:-;1307:7;1368:9;:16;1388:2;1368:22;1364:92;;1406:39;;;-1:-1:-1;;;;;1406:39:32;;;;;;;;;;;;;;;;;;;;;;;;;;;1364:92;1806:4;1791:20;;1785:27;1851:4;1836:20;;1830:27;1904:4;1889:20;;1883:27;1522:9;1875:36;2822:66;2809:79;;2805:155;;;2904:45;;-1:-1:-1;;;;;2904:45:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:155;2974:1;:7;;2979:2;2974:7;;:18;;;;;2985:1;:7;;2990:2;2985:7;;2974:18;2970:95;;;3008:46;;-1:-1:-1;;;;;3008:46:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2970:95;3166:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3166:24:32;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3166:24:32;;-1:-1:-1;;3166:24:32;;;1229:1968;-1:-1:-1;;;;;;;1229:1968:32:o;678:492:17:-;810:42;;;;;;;;;;;-1:-1:-1;;;;;810:42:17;;;;882:21;;892:10;882:21;;;736:13;882:21;;;;;;-1:-1:-1;;;;;785:14:17;;;810:42;736:13;;882:21;;;21:6:-1;;104:10;882:21:17;87:34:-1;135:17;;-1:-1;882:21:17;863:40;;-1:-1:-1;;;;;913:3:17;917:1;913:6;;;;;;;;;;;:12;-1:-1:-1;;;;;913:12:17;;;;;;;;;-1:-1:-1;;;;;935:3:17;939:1;935:6;;;;;;;;;;;:12;-1:-1:-1;;;;;935:12:17;;;;;;;;-1:-1:-1;962:6:17;957:179;978:2;974:1;:6;957:179;;;1014:8;1051:1;1034:5;1040:1;1044:2;1040:6;1034:13;;;;;;;;;;-1:-1:-1;;;;;1034:18:17;;;;1028:25;;1023:31;;1014:41;;;;;;;;;;;;;;;;1001:3;1007:1;1009;1007:3;1005:1;:5;1001:10;;;;;;;;;;;:54;-1:-1:-1;;;;;1001:54:17;;;;;;;;;1082:8;1102:5;1108:1;1112:2;1108:6;1102:13;;;;;;;;;;1118:4;1102:20;;;1096:27;;1091:33;;1082:43;;;;;;;;;;;;;;;;1069:3;1075:1;1077;1075:3;1073:1;:5;1069:10;;;;;;;;;;;:56;-1:-1:-1;;;;;1069:56:17;;;;;;;;-1:-1:-1;982:3:17;;957:179;;1212:180;1317:13;1373:1;1376;1379;1382;1356:28;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1356:28:17;;;;;;;;;;-1:-1:-1;1356:28:17;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1356:28:17;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1356:28:17;;;1342:43;;1212:180;;;;;;:::o;2093:225:36:-;-1:-1:-1;;;;;2166:22:36;;2158:73;;;;-1:-1:-1;;;;;2158:73:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2267:6;;;2246:38;;-1:-1:-1;;;;;2246:38:36;;;;2267:6;;;2246:38;;;2294:6;:17;;-1:-1:-1;;;;;;2294:17:36;-1:-1:-1;;;;;2294:17:36;;;;;;;;;;2093:225::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\n\nimport \"../libraries/String.sol\";\nimport \"./ERC20Shifted.sol\";\n\n/// @notice Shifter handles verifying mint and burn requests. A mintAuthority\n/// approves new assets to be minted by providing a digital signature. An owner\n/// of an asset can request for it to be burnt.\ncontract Shifter is Ownable {\n using SafeMath for uint256;\n\n uint8 public version = 2;\n\n uint256 constant BIPS_DENOMINATOR = 10000;\n uint256 public minShiftAmount;\n\n /// @notice Each Shifter token is tied to a specific shifted token.\n ERC20Shifted public token;\n\n /// @notice The mintAuthority is an address that can sign mint requests.\n address public mintAuthority;\n\n /// @dev feeRecipient is assumed to be an address (or a contract) that can\n /// accept erc20 payments it cannot be 0x0.\n /// @notice When tokens are mint or burnt, a portion of the tokens are\n /// forwarded to a fee recipient.\n address public feeRecipient;\n\n /// @notice The minting and burning fee in bips.\n uint16 public fee;\n\n /// @notice Each nHash can only be seen once.\n mapping (bytes32=>bool) public status;\n\n // LogShiftIn and LogShiftOut contain a unique `shiftID` that identifies\n // the mint or burn event.\n uint256 public nextShiftID = 0;\n\n event LogShiftIn(address indexed _to, uint256 _amount, uint256 indexed _shiftID);\n event LogShiftOut(bytes _to, uint256 _amount, uint256 indexed _shiftID, bytes indexed _indexedTo);\n\n /// @param _token The ERC20Shifted this Shifter is responsible for.\n /// @param _feeRecipient The recipient of burning and minting fees.\n /// @param _mintAuthority The address of the key that can sign mint\n /// requests.\n /// @param _fee The amount subtracted each burn and mint request and\n /// forwarded to the feeRecipient. In BIPS.\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee, uint256 _minShiftOutAmount) public {\n minShiftAmount = _minShiftOutAmount;\n token = _token;\n mintAuthority = _mintAuthority;\n fee = _fee;\n updateFeeRecipient(_feeRecipient);\n }\n\n // Public functions ////////////////////////////////////////////////////////\n\n /// @notice Claims ownership of the token passed in to the constructor.\n /// `transferStoreOwnership` must have previously been called.\n /// Anyone can call this function.\n function claimTokenOwnership() public {\n token.claimOwnership();\n }\n\n /// @notice Allow the owner to update the owner of the ERC20Shifted token.\n function transferTokenOwnership(Shifter _nextTokenOwner) public onlyOwner {\n token.transferOwnership(address(_nextTokenOwner));\n _nextTokenOwner.claimTokenOwnership();\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextMintAuthority The address to start paying fees to.\n function updateMintAuthority(address _nextMintAuthority) public onlyOwner {\n mintAuthority = _nextMintAuthority;\n }\n\n /// @notice Allow the owner to update the minimum shiftOut amount.\n ///\n /// @param _minShiftOutAmount The new min shiftOut amount.\n function updateMinimumShiftOutAmount(uint256 _minShiftOutAmount) public onlyOwner {\n minShiftAmount = _minShiftOutAmount;\n }\n\n /// @notice Allow the owner to update the fee recipient.\n ///\n /// @param _nextFeeRecipient The address to start paying fees to.\n function updateFeeRecipient(address _nextFeeRecipient) public onlyOwner {\n // ShiftIn and ShiftOut will fail if the feeRecipient is 0x0\n require(_nextFeeRecipient != address(0x0), \"fee recipient cannot be 0x0\");\n\n feeRecipient = _nextFeeRecipient;\n }\n\n /// @notice Allow the owner to update the fee.\n ///\n /// @param _nextFee The new fee for minting and burning.\n function updateFee(uint16 _nextFee) public onlyOwner {\n fee = _nextFee;\n }\n\n /// @notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _pHash (payload hash) The hash of the payload associated with the\n /// shift.\n /// @param _amount The amount of the token being shifted int, in its\n /// smallest value. (e.g. satoshis for BTC)\n /// @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n /// @param _sig The signature of the hash of the following values:\n /// (pHash, amount, msg.sender, nHash), signed by the mintAuthority.\n function shiftIn(bytes32 _pHash, uint256 _amount, bytes32 _nHash, bytes memory _sig) public returns (uint256) {\n // Verify signature\n bytes32 signedMessageHash = hashForSignature(_pHash, _amount, msg.sender, _nHash);\n require(status[signedMessageHash] == false, \"nonce hash already spent\");\n if (!verifySignature(signedMessageHash, _sig)) {\n // Return a detailed string containing the hash and recovered\n // signer. This is a costly operation but is only run in the revert\n // branch.\n revert(\n String.add4(\n \"invalid signature - hash: \",\n String.fromBytes32(signedMessageHash),\n \", signer: \",\n String.fromAddress(ECDSA.recover(signedMessageHash, _sig))\n )\n );\n }\n status[signedMessageHash] = true;\n\n // Mint `amount - fee` for the recipient and mint `fee` for the minter\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n uint256 receivedAmount = _amount.sub(absoluteFee);\n token.mint(msg.sender, receivedAmount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n emit LogShiftIn(msg.sender, receivedAmount, nextShiftID);\n nextShiftID += 1;\n\n return receivedAmount;\n }\n\n /// @notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n ///\n /// @param _to The address to receive the unshifted digital asset. The\n /// format of this address should be of the destination chain.\n /// For example, when shifting out to Bitcoin, _to should be a\n /// Bitcoin address.\n /// @param _amount The amount of the token being shifted out, in its\n /// smallest value. (e.g. satoshis for BTC)\n function shiftOut(bytes memory _to, uint256 _amount) public returns (uint256) {\n // The recipient must not be empty. Better validation is possible,\n // but would need to be customized for each destination ledger.\n require(_to.length != 0, \"to address is empty\");\n require(_amount >= minShiftAmount, \"amount is less than the minimum shiftOut amount\");\n\n // Burn full amount and mint fee\n uint256 absoluteFee = (_amount.mul(fee)).div(BIPS_DENOMINATOR);\n token.burn(msg.sender, _amount);\n token.mint(feeRecipient, absoluteFee);\n\n // Emit a log with a unique shift ID\n uint256 receivedValue = _amount.sub(absoluteFee);\n emit LogShiftOut(_to, receivedValue, nextShiftID, _to);\n nextShiftID += 1;\n\n return receivedValue;\n }\n\n /// @notice verifySignature checks the the provided signature matches the provided\n /// parameters.\n function verifySignature(bytes32 _signedMessageHash, bytes memory _sig) public view returns (bool) {\n return mintAuthority == ECDSA.recover(_signedMessageHash, _sig);\n }\n\n /// @notice hashForSignature hashes the parameters so that they can be signed.\n function hashForSignature(bytes32 _pHash, uint256 _amount, address _to, bytes32 _nHash) public view returns (bytes32) {\n return keccak256(abi.encode(_pHash, _amount, address(token), _to, _nHash));\n }\n}\n\n/// @dev The following are not necessary for deploying BTCShifter or ZECShifter\n/// contracts, but are used to track deployments.\ncontract BTCShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee, uint256 _minShiftOutAmount)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee, _minShiftOutAmount) public {\n }\n}\n\ncontract ZECShifter is Shifter {\n constructor(ERC20Shifted _token, address _feeRecipient, address _mintAuthority, uint16 _fee, uint256 _minShiftOutAmount)\n Shifter(_token, _feeRecipient, _mintAuthority, _fee, _minShiftOutAmount) public {\n }\n}", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3328 - ], - "Shifter": [ - 3304 - ], - "ZECShifter": [ - 3352 - ] - }, - "id": 3353, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7393, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7504, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7106, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 5321, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7503, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7503", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7503 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3304, - "linearizedBaseContracts": [ - 3304, - 7503 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7392, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7392", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "minShiftAmount", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "630:29:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "738:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2922, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "738:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "847:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "847:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1122:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1122:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2929, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1209:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2928, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1209:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2933, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1283:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2932, - "keyType": { - "id": 2930, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1292:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1283:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1301:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2936, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1435:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1435:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1464:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2944, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1489:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1489:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1510:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1510:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2942, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1527:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1527:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1488:64:9" - }, - "src": "1472:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2954, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1576:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2945, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1576:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1587:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1587:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1604:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1604:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2952, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1630:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1630:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1575:80:9" - }, - "src": "1558:98:9" - }, - { - "body": { - "id": 2987, - "nodeType": "Block", - "src": "2159:179:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2169:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2964, - "src": "2186:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2169:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2169:35:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2214:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2222:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2214:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2214:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2975, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "2238:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2976, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2254:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2238:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2238:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2979, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "2278:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2980, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2962, - "src": "2284:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2278:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2982, - "nodeType": "ExpressionStatement", - "src": "2278:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2984, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2317:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2983, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "2298:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2986, - "nodeType": "ExpressionStatement", - "src": "2298:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2988, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2043:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2955, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2043:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2064:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2064:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2087:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2087:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2962, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2111:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2961, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2111:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2124:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2124:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2042:109:9" - }, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2159:0:9" - }, - "scope": 3304, - "src": "2031:307:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2996, - "nodeType": "Block", - "src": "2646:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2991, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2656:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4313, - "src": "2656:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2656:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2995, - "nodeType": "ExpressionStatement", - "src": "2656:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [], - "src": "2636:2:9" - }, - "returnParameters": { - "id": 2990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2646:0:9" - }, - "scope": 3304, - "src": "2608:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3017, - "nodeType": "Block", - "src": "2844:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3008, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2886:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - ], - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2878:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2878:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2854:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4292, - "src": "2854:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2854:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3011, - "nodeType": "ExpressionStatement", - "src": "2854:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3012, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2913:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2997, - "src": "2913:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2913:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3016, - "nodeType": "ExpressionStatement", - "src": "2913:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3018, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3002, - "modifierName": { - "argumentTypes": null, - "id": 3001, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "2834:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2834:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2999, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3018, - "src": "2802:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2998, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "2802:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2801:25:9" - }, - "returnParameters": { - "id": 3003, - "nodeType": "ParameterList", - "parameters": [], - "src": "2844:0:9" - }, - "scope": 3304, - "src": "2770:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3029, - "nodeType": "Block", - "src": "3177:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3025, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3187:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3026, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3020, - "src": "3203:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3187:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3028, - "nodeType": "ExpressionStatement", - "src": "3187:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3030, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3023, - "modifierName": { - "argumentTypes": null, - "id": 3022, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3167:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3167:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "3132:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3019, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3132:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3131:28:9" - }, - "returnParameters": { - "id": 3024, - "nodeType": "ParameterList", - "parameters": [], - "src": "3177:0:9" - }, - "scope": 3304, - "src": "3103:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3041, - "nodeType": "Block", - "src": "3458:52:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3037, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "3468:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3032, - "src": "3485:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3468:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3040, - "nodeType": "ExpressionStatement", - "src": "3468:35:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the minimum shiftOut amount.\n\n /// @param _minShiftOutAmount The new min shiftOut amount.", - "id": 3042, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3035, - "modifierName": { - "argumentTypes": null, - "id": 3034, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3448:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3448:9:9" - } - ], - "name": "updateMinimumShiftOutAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3042, - "src": "3413:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3413:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3412:28:9" - }, - "returnParameters": { - "id": 3036, - "nodeType": "ParameterList", - "parameters": [], - "src": "3458:0:9" - }, - "scope": 3304, - "src": "3376:134:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3062, - "nodeType": "Block", - "src": "3727:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3050, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3814:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3843:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3835:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3835:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3814:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3849:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3049, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3806:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3806:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3057, - "nodeType": "ExpressionStatement", - "src": "3806:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3058, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3890:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3059, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3905:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3890:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3061, - "nodeType": "ExpressionStatement", - "src": "3890:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3063, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3047, - "modifierName": { - "argumentTypes": null, - "id": 3046, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3717:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3717:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3044, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3063, - "src": "3683:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3683:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3682:27:9" - }, - "returnParameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [], - "src": "3727:0:9" - }, - "scope": 3304, - "src": "3655:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3074, - "nodeType": "Block", - "src": "4108:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3070, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "4118:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3071, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4124:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "4118:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3073, - "nodeType": "ExpressionStatement", - "src": "4118:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3075, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3068, - "modifierName": { - "argumentTypes": null, - "id": 3067, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "4098:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4098:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3065, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "4074:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3064, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4074:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4073:17:9" - }, - "returnParameters": { - "id": 3069, - "nodeType": "ParameterList", - "parameters": [], - "src": "4108:0:9" - }, - "scope": 3304, - "src": "4055:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3186, - "nodeType": "Block", - "src": "4802:1273:9", - "statements": [ - { - "assignments": [ - 3089 - ], - "declarations": [ - { - "constant": false, - "id": 3089, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "4840:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3088, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4840:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3097, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3091, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "4885:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3092, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "4893:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "4902:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4902:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3095, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "4914:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3090, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "4868:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4868:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4840:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3099, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "4939:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3101, - "indexExpression": { - "argumentTypes": null, - "id": 3100, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "4946:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4968:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4939:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4975:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3098, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "4931:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4931:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3106, - "nodeType": "ExpressionStatement", - "src": "4931:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5016:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3108, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5033:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3109, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5052:4:9", - "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": 3107, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "5017:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5017:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3133, - "nodeType": "IfStatement", - "src": "5012:539:9", - "trueBody": { - "id": 3132, - "nodeType": "Block", - "src": "5059:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5307:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3118, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5376:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3116, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5357:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5192, - "src": "5357:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5357:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5416:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3125, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5483:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3126, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5502:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3123, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "5469:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "5469:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5469:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3121, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5450:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5295, - "src": "5450:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5450:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3113, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5274:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5319, - "src": "5274:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5274:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3112, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8199, - 8200 - ], - "referencedDeclaration": 8200, - "src": "5250:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5250:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "5250:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3134, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "5560:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3136, - "indexExpression": { - "argumentTypes": null, - "id": 3135, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5567:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5560:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5588:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5560:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3139, - "nodeType": "ExpressionStatement", - "src": "5560:32:9" - }, - { - "assignments": [ - 3141 - ], - "declarations": [ - { - "constant": false, - "id": 3141, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5682:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5682:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3150, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3148, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5727:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3144, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "5717:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3142, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5705:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "5705:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5705:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3146, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5704:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "5704:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5704:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5682:62:9" - }, - { - "assignments": [ - 3152 - ], - "declarations": [ - { - "constant": false, - "id": 3152, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5754:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3157, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3155, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5791:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3153, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5779:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "5779:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5779:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5754:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3161, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5824:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5824:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3163, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5836:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3158, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5813:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5813:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5813:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3165, - "nodeType": "ExpressionStatement", - "src": "5813:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3169, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5872:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3170, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3166, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5861:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5861:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5861:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3172, - "nodeType": "ExpressionStatement", - "src": "5861:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5970:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5970:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3176, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5982:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3177, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "5998:11:9", - "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": 3173, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "5959:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5959:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3179, - "nodeType": "EmitStatement", - "src": "5954:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3180, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "6020:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6035:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6020:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6020:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3184, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "6054:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3087, - "id": 3185, - "nodeType": "Return", - "src": "6047:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3187, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3077, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4709:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3076, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4709:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3079, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4725:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3078, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4725:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4742:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3080, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4742:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4758:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3082, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4758:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4708:68:9" - }, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3086, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4793:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4793:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4792:9:9" - }, - "scope": 3304, - "src": "4692:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3257, - "nodeType": "Block", - "src": "6632:733:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3197, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "6797:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6811:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6797:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6814:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3196, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6789:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6789:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3203, - "nodeType": "ExpressionStatement", - "src": "6789:47:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3205, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "6854:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3206, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6865:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6854:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74", - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6881:49:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - }, - "value": "amount is less than the minimum shiftOut amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - } - ], - "id": 3204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6846:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6846:85:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "6846:85:9" - }, - { - "assignments": [ - 3212 - ], - "declarations": [ - { - "constant": false, - "id": 3212, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "6983:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6983:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3221, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "7028:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3215, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "7018:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3213, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7006:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "7006:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7006:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7005:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "7005:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7005:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6983:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "7066:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7066:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3227, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3222, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7055:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "7055:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7055:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3229, - "nodeType": "ExpressionStatement", - "src": "7055:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3233, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "7107:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3234, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7121:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3230, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7096:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "7096:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7096:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3236, - "nodeType": "ExpressionStatement", - "src": "7096:37:9" - }, - { - "assignments": [ - 3238 - ], - "declarations": [ - { - "constant": false, - "id": 3238, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "7189:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7189:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3243, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3241, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7225:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3239, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7213:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "7213:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7189:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3245, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7264:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3246, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7269:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3247, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7284:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3248, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7297:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3244, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "7252:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7252:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3250, - "nodeType": "EmitStatement", - "src": "7247:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3251, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7311:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7326:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3254, - "nodeType": "ExpressionStatement", - "src": "7311:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7345:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3195, - "id": 3256, - "nodeType": "Return", - "src": "7338:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3258, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3189, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6572:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3188, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3191, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6590:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3190, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6590:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6571:35:9" - }, - "returnParameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3194, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6623:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6623:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:9:9" - }, - "scope": 3304, - "src": "6554:811:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7577:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3267, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "7594:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3270, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "7625:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "7645:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "7611:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "7611:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7611:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7594:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3266, - "id": 3274, - "nodeType": "Return", - "src": "7587:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7503:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7503:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3262, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7531:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3261, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7531:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7502:47:9" - }, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7571:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3264, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7571:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7570:6:9" - }, - "scope": 3304, - "src": "7478:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3302, - "nodeType": "Block", - "src": "7864:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3292, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "7902:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3280, - "src": "7910:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3295, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7927:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7919:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7919:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3297, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3282, - "src": "7935:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3298, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3284, - "src": "7940:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3290, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "7891:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7891:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3289, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "7881:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7881:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3288, - "id": 3301, - "nodeType": "Return", - "src": "7874:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3303, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3278, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7772:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3277, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3280, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7788:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7788:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3282, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7805:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7805:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7818:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3283, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7818:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7771:62:9" - }, - "returnParameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3287, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7855:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3286, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7855:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7854:9:9" - }, - "scope": 3304, - "src": "7746:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "485:7472:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3305, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3306, - "nodeType": "InheritanceSpecifier", - "src": "8112:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3328, - "linearizedBaseContracts": [ - 3328, - 3304, - 7503 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3326, - "nodeType": "Block", - "src": "8335:11:9", - "statements": [] - }, - "documentation": null, - "id": 3327, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3319, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8263:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3320, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3310, - "src": "8271:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3321, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "8286:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3322, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8302:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "8308:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3324, - "modifierName": { - "argumentTypes": null, - "id": 3318, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8255:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8255:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3308, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8138:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3307, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8138:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3310, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8159:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3312, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8182:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8182:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3314, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8206:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3313, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8206:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3316, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8219:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8219:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8137:109:9" - }, - "returnParameters": { - "id": 3325, - "nodeType": "ParameterList", - "parameters": [], - "src": "8335:0:9" - }, - "scope": 3328, - "src": "8126:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8089:259:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3329, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8373:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3330, - "nodeType": "InheritanceSpecifier", - "src": "8373:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3352, - "linearizedBaseContracts": [ - 3352, - 3304, - 7503 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3350, - "nodeType": "Block", - "src": "8596:11:9", - "statements": [] - }, - "documentation": null, - "id": 3351, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "8524:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3344, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "8532:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3345, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3336, - "src": "8547:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3346, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3338, - "src": "8563:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3347, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3340, - "src": "8569:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3348, - "modifierName": { - "argumentTypes": null, - "id": 3342, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8516:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8516:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8399:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3331, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8399:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8420:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8420:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3336, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8443:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8443:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3338, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8467:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3337, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8467:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3340, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8480:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8480:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8398:109:9" - }, - "returnParameters": { - "id": 3349, - "nodeType": "ParameterList", - "parameters": [], - "src": "8596:0:9" - }, - "scope": 3352, - "src": "8387:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8350:259:9" - } - ], - "src": "0:8609:9" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/Shifter.sol", - "exportedSymbols": { - "BTCShifter": [ - 3328 - ], - "Shifter": [ - 3304 - ], - "ZECShifter": [ - 3352 - ] - }, - "id": 3353, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2903, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:9" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "file": "openzeppelin-solidity/contracts/math/SafeMath.sol", - "id": 2904, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7393, - "src": "25:59:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2905, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7504, - "src": "85:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "file": "openzeppelin-solidity/contracts/cryptography/ECDSA.sol", - "id": 2906, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 7106, - "src": "149:64:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/String.sol", - "file": "../libraries/String.sol", - "id": 2907, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 5321, - "src": "215:33:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "file": "./ERC20Shifted.sol", - "id": 2908, - "nodeType": "ImportDirective", - "scope": 3353, - "sourceUnit": 2877, - "src": "249:28:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2909, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7503, - "src": "505:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$7503", - "typeString": "contract Ownable" - } - }, - "id": 2910, - "nodeType": "InheritanceSpecifier", - "src": "505:7:9" - } - ], - "contractDependencies": [ - 7503 - ], - "contractKind": "contract", - "documentation": "@notice Shifter handles verifying mint and burn requests. A mintAuthority\n approves new assets to be minted by providing a digital signature. An owner\n of an asset can request for it to be burnt.", - "fullyImplemented": true, - "id": 3304, - "linearizedBaseContracts": [ - 3304, - 7503 - ], - "name": "Shifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2913, - "libraryName": { - "contractScope": null, - "id": 2911, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7392, - "src": "525:8:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$7392", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "519:27:9", - "typeName": { - "id": 2912, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "538:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 2916, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "552:24:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2914, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "552:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "32", - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "575:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "visibility": "public" - }, - { - "constant": true, - "id": 2919, - "name": "BIPS_DENOMINATOR", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "583:41:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 2918, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "619:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 2921, - "name": "minShiftAmount", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "630:29:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "630:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2923, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "738:25:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2922, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "738:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2925, - "name": "mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "847:28:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2924, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "847:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2927, - "name": "feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1122:27:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2926, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1122:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2929, - "name": "fee", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1209:17:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2928, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "1209:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2933, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1283:37:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "typeName": { - "id": 2932, - "keyType": { - "id": 2930, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1292:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "Mapping", - "src": "1283:23:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - }, - "valueType": { - "id": 2931, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1301:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2936, - "name": "nextShiftID", - "nodeType": "VariableDeclaration", - "scope": 3304, - "src": "1435:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2934, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1435:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 2935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1464:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 2944, - "name": "LogShiftIn", - "nodeType": "EventDefinition", - "parameters": { - "id": 2943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2938, - "indexed": true, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1489:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2937, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1489:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2940, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1510:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2939, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1510:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2942, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2944, - "src": "1527:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1527:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1488:64:9" - }, - "src": "1472:81:9" - }, - { - "anonymous": false, - "documentation": null, - "id": 2954, - "name": "LogShiftOut", - "nodeType": "EventDefinition", - "parameters": { - "id": 2953, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2946, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1576:9:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2945, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1576:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2948, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1587:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2947, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1587:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2950, - "indexed": true, - "name": "_shiftID", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1604:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2949, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1604:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2952, - "indexed": true, - "name": "_indexedTo", - "nodeType": "VariableDeclaration", - "scope": 2954, - "src": "1630:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2951, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1630:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1575:80:9" - }, - "src": "1558:98:9" - }, - { - "body": { - "id": 2987, - "nodeType": "Block", - "src": "2159:179:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2969, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2967, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "2169:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2968, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2964, - "src": "2186:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2169:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2970, - "nodeType": "ExpressionStatement", - "src": "2169:35:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2971, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2214:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2972, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "2222:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "src": "2214:14:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2974, - "nodeType": "ExpressionStatement", - "src": "2214:14:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2975, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "2238:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2976, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2960, - "src": "2254:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2238:30:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2978, - "nodeType": "ExpressionStatement", - "src": "2238:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 2981, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2979, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "2278:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2980, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2962, - "src": "2284:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "2278:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 2982, - "nodeType": "ExpressionStatement", - "src": "2278:10:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2984, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "2317:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 2983, - "name": "updateFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3063, - "src": "2298:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 2985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2986, - "nodeType": "ExpressionStatement", - "src": "2298:33:9" - } - ] - }, - "documentation": "@param _token The ERC20Shifted this Shifter is responsible for.\n @param _feeRecipient The recipient of burning and minting fees.\n @param _mintAuthority The address of the key that can sign mint\n requests.\n @param _fee The amount subtracted each burn and mint request and\n forwarded to the feeRecipient. In BIPS.", - "id": 2988, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2965, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2956, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2043:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 2955, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "2043:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2958, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2064:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2064:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2960, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2087:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2087:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2962, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2111:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 2961, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "2111:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 2988, - "src": "2124:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2963, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2124:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2042:109:9" - }, - "returnParameters": { - "id": 2966, - "nodeType": "ParameterList", - "parameters": [], - "src": "2159:0:9" - }, - "scope": 3304, - "src": "2031:307:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2996, - "nodeType": "Block", - "src": "2646:39:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 2991, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2656:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4313, - "src": "2656:20:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 2994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2656:22:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2995, - "nodeType": "ExpressionStatement", - "src": "2656:22:9" - } - ] - }, - "documentation": "@notice Claims ownership of the token passed in to the constructor.\n `transferStoreOwnership` must have previously been called.\n Anyone can call this function.", - "id": 2997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "claimTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2989, - "nodeType": "ParameterList", - "parameters": [], - "src": "2636:2:9" - }, - "returnParameters": { - "id": 2990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2646:0:9" - }, - "scope": 3304, - "src": "2608:77:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3017, - "nodeType": "Block", - "src": "2844:113:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3008, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2886:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - ], - "id": 3007, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2878:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2878:24:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3004, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "2854:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 4292, - "src": "2854:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$", - "typeString": "function (address) external" - } - }, - "id": 3010, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2854:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3011, - "nodeType": "ExpressionStatement", - "src": "2854:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 3012, - "name": "_nextTokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2999, - "src": "2913:15:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "claimTokenOwnership", - "nodeType": "MemberAccess", - "referencedDeclaration": 2997, - "src": "2913:35:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$__$returns$__$", - "typeString": "function () external" - } - }, - "id": 3015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2913:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3016, - "nodeType": "ExpressionStatement", - "src": "2913:37:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the owner of the ERC20Shifted token.", - "id": 3018, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3002, - "modifierName": { - "argumentTypes": null, - "id": 3001, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "2834:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2834:9:9" - } - ], - "name": "transferTokenOwnership", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3000, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2999, - "name": "_nextTokenOwner", - "nodeType": "VariableDeclaration", - "scope": 3018, - "src": "2802:23:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - }, - "typeName": { - "contractScope": null, - "id": 2998, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "2802:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2801:25:9" - }, - "returnParameters": { - "id": 3003, - "nodeType": "ParameterList", - "parameters": [], - "src": "2844:0:9" - }, - "scope": 3304, - "src": "2770:187:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3029, - "nodeType": "Block", - "src": "3177:51:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3027, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3025, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "3187:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3026, - "name": "_nextMintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3020, - "src": "3203:18:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3187:34:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3028, - "nodeType": "ExpressionStatement", - "src": "3187:34:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextMintAuthority The address to start paying fees to.", - "id": 3030, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3023, - "modifierName": { - "argumentTypes": null, - "id": 3022, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3167:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3167:9:9" - } - ], - "name": "updateMintAuthority", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3021, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3020, - "name": "_nextMintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3030, - "src": "3132:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3019, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3132:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3131:28:9" - }, - "returnParameters": { - "id": 3024, - "nodeType": "ParameterList", - "parameters": [], - "src": "3177:0:9" - }, - "scope": 3304, - "src": "3103:125:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3041, - "nodeType": "Block", - "src": "3458:52:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3037, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "3468:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3038, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3032, - "src": "3485:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3468:35:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3040, - "nodeType": "ExpressionStatement", - "src": "3468:35:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the minimum shiftOut amount.\n\n /// @param _minShiftOutAmount The new min shiftOut amount.", - "id": 3042, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3035, - "modifierName": { - "argumentTypes": null, - "id": 3034, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3448:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3448:9:9" - } - ], - "name": "updateMinimumShiftOutAmount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3033, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3032, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3042, - "src": "3413:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3031, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3413:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3412:28:9" - }, - "returnParameters": { - "id": 3036, - "nodeType": "ParameterList", - "parameters": [], - "src": "3458:0:9" - }, - "scope": 3304, - "src": "3376:134:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3062, - "nodeType": "Block", - "src": "3727:202:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3050, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3814:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "307830", - "id": 3052, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3843:3:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 3051, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3835:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3835:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3814:33:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "66656520726563697069656e742063616e6e6f7420626520307830", - "id": 3055, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3849:29:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - }, - "value": "fee recipient cannot be 0x0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ddd26054577c7061288751ccdd210add0361f5e4a15cfd38eda095384d764e5b", - "typeString": "literal_string \"fee recipient cannot be 0x0\"" - } - ], - "id": 3049, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "3806:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3806:73:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3057, - "nodeType": "ExpressionStatement", - "src": "3806:73:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3058, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "3890:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3059, - "name": "_nextFeeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3044, - "src": "3905:17:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3890:32:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3061, - "nodeType": "ExpressionStatement", - "src": "3890:32:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee recipient.\n\n /// @param _nextFeeRecipient The address to start paying fees to.", - "id": 3063, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3047, - "modifierName": { - "argumentTypes": null, - "id": 3046, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "3717:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3717:9:9" - } - ], - "name": "updateFeeRecipient", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3045, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3044, - "name": "_nextFeeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3063, - "src": "3683:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3043, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3683:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3682:27:9" - }, - "returnParameters": { - "id": 3048, - "nodeType": "ParameterList", - "parameters": [], - "src": "3727:0:9" - }, - "scope": 3304, - "src": "3655:274:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3074, - "nodeType": "Block", - "src": "4108:31:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3070, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "4118:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3071, - "name": "_nextFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3065, - "src": "4124:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "src": "4118:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "id": 3073, - "nodeType": "ExpressionStatement", - "src": "4118:14:9" - } - ] - }, - "documentation": "@notice Allow the owner to update the fee.\n\n /// @param _nextFee The new fee for minting and burning.", - "id": 3075, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 3068, - "modifierName": { - "argumentTypes": null, - "id": 3067, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7436, - "src": "4098:9:9", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4098:9:9" - } - ], - "name": "updateFee", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3065, - "name": "_nextFee", - "nodeType": "VariableDeclaration", - "scope": 3075, - "src": "4074:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3064, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "4074:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4073:17:9" - }, - "returnParameters": { - "id": 3069, - "nodeType": "ParameterList", - "parameters": [], - "src": "4108:0:9" - }, - "scope": 3304, - "src": "4055:84:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3186, - "nodeType": "Block", - "src": "4802:1273:9", - "statements": [ - { - "assignments": [ - 3089 - ], - "declarations": [ - { - "constant": false, - "id": 3089, - "name": "signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "4840:25:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3088, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4840:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3097, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3091, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3077, - "src": "4885:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3092, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "4893:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3093, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "4902:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4902:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3095, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3081, - "src": "4914:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 3090, - "name": "hashForSignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3303, - "src": "4868:16:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bytes32_$", - "typeString": "function (bytes32,uint256,address,bytes32) view returns (bytes32)" - } - }, - "id": 3096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4868:53:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4840:81:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3099, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "4939:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3101, - "indexExpression": { - "argumentTypes": null, - "id": 3100, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "4946:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4939:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4968:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "4939:34:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f6e6365206861736820616c7265616479207370656e74", - "id": 3104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4975:26:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - }, - "value": "nonce hash already spent" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_a3c38debfb7e0d2e1305193d750b2651fd0e6742e3fe145b7017bb3d0ded8b1c", - "typeString": "literal_string \"nonce hash already spent\"" - } - ], - "id": 3098, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "4931:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3105, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4931:71:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3106, - "nodeType": "ExpressionStatement", - "src": "4931:71:9" - }, - { - "condition": { - "argumentTypes": null, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "5016:41:9", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3108, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5033:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3109, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5052:4:9", - "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": 3107, - "name": "verifySignature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3276, - "src": "5017:15:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (bytes32,bytes memory) view returns (bool)" - } - }, - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5017:40:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3133, - "nodeType": "IfStatement", - "src": "5012:539:9", - "trueBody": { - "id": 3132, - "nodeType": "Block", - "src": "5059:492:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "696e76616c6964207369676e6174757265202d20686173683a20", - "id": 3115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5307:28:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - "value": "invalid signature - hash: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3118, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5376:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3116, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5357:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromBytes32", - "nodeType": "MemberAccess", - "referencedDeclaration": 5192, - "src": "5357:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_string_memory_ptr_$", - "typeString": "function (bytes32) pure returns (string memory)" - } - }, - "id": 3119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5357:37:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "2c207369676e65723a20", - "id": 3120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5416:12:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - "value": ", signer: " - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3125, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5483:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3126, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3083, - "src": "5502:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3123, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "5469:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "5469:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5469:38:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 3121, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5450:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fromAddress", - "nodeType": "MemberAccess", - "referencedDeclaration": 5295, - "src": "5450:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", - "typeString": "function (address) pure returns (string memory)" - } - }, - "id": 3128, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5450:58:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_448f0704e44044c6f625932c9b116ec3eb5ba27c29662ab609febd121c7fe824", - "typeString": "literal_string \"invalid signature - hash: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_stringliteral_837cdf561f1c237d08fe4c4218d1d5baed82ace2df69a6622c5ef72cf1d3d81e", - "typeString": "literal_string \", signer: \"" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3113, - "name": "String", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5320, - "src": "5274:6:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_String_$5320_$", - "typeString": "type(library String)" - } - }, - "id": 3114, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add4", - "nodeType": "MemberAccess", - "referencedDeclaration": 5319, - "src": "5274:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$", - "typeString": "function (string memory,string memory,string memory,string memory) pure returns (string memory)" - } - }, - "id": 3129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5274:252:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3112, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8199, - 8200 - ], - "referencedDeclaration": 8200, - "src": "5250:6:9", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", - "typeString": "function (string memory) pure" - } - }, - "id": 3130, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5250:290:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3131, - "nodeType": "ExpressionStatement", - "src": "5250:290:9" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 3138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3134, - "name": "status", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2933, - "src": "5560:6:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", - "typeString": "mapping(bytes32 => bool)" - } - }, - "id": 3136, - "indexExpression": { - "argumentTypes": null, - "id": 3135, - "name": "signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "5567:17:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5560:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3137, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5588:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "5560:32:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3139, - "nodeType": "ExpressionStatement", - "src": "5560:32:9" - }, - { - "assignments": [ - 3141 - ], - "declarations": [ - { - "constant": false, - "id": 3141, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5682:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5682:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3150, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3148, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "5727:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3144, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "5717:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3142, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5705:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "5705:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5705:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3146, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "5704:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3147, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "5704:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5704:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5682:62:9" - }, - { - "assignments": [ - 3152 - ], - "declarations": [ - { - "constant": false, - "id": 3152, - "name": "receivedAmount", - "nodeType": "VariableDeclaration", - "scope": 3186, - "src": "5754:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3151, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3157, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3155, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5791:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3153, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3079, - "src": "5779:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "5779:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5779:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5754:49:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3161, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5824:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5824:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3163, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5836:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3158, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5813:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5813:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5813:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3165, - "nodeType": "ExpressionStatement", - "src": "5813:38:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3169, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "5872:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3170, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3141, - "src": "5886:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3166, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "5861:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "5861:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3171, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5861:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3172, - "nodeType": "ExpressionStatement", - "src": "5861:37:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3174, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "5970:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5970:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3176, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "5982:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3177, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "5998:11:9", - "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": 3173, - "name": "LogShiftIn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2944, - "src": "5959:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5959:51:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3179, - "nodeType": "EmitStatement", - "src": "5954:56:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3180, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "6020:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6035:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "6020:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3183, - "nodeType": "ExpressionStatement", - "src": "6020:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3184, - "name": "receivedAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3152, - "src": "6054:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3087, - "id": 3185, - "nodeType": "Return", - "src": "6047:21:9" - } - ] - }, - "documentation": "@notice shiftIn mints tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _pHash (payload hash) The hash of the payload associated with the\n shift.\n @param _amount The amount of the token being shifted int, in its\n smallest value. (e.g. satoshis for BTC)\n @param _nHash (nonce hash) The hash of the nonce, amount and pHash.\n @param _sig The signature of the hash of the following values:\n (pHash, amount, msg.sender, nHash), signed by the mintAuthority.", - "id": 3187, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftIn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3077, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4709:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3076, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4709:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3079, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4725:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3078, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4725:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3081, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4742:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3080, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4742:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3083, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4758:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3082, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4758:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4708:68:9" - }, - "returnParameters": { - "id": 3087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3086, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3187, - "src": "4793:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3085, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4793:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4792:9:9" - }, - "scope": 3304, - "src": "4692:1383:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3257, - "nodeType": "Block", - "src": "6632:733:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3197, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "6797:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 3198, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6797:10:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6811:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6797:15:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f206164647265737320697320656d707479", - "id": 3201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6814:21:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - }, - "value": "to address is empty" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_3387226d3456c87662abc983f9678c21ff0a40cda11ae06c03a4afde3892adc1", - "typeString": "literal_string \"to address is empty\"" - } - ], - "id": 3196, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6789:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6789:47:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3203, - "nodeType": "ExpressionStatement", - "src": "6789:47:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3205, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "6854:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 3206, - "name": "minShiftAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2921, - "src": "6865:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6854:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "616d6f756e74206973206c657373207468616e20746865206d696e696d756d2073686966744f757420616d6f756e74", - "id": 3208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6881:49:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - }, - "value": "amount is less than the minimum shiftOut amount" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_385fd9e3f2f8b9e3ba36b5cc2b911429bfa33d2bf4c9e1e9d0df9d9ace46f5ec", - "typeString": "literal_string \"amount is less than the minimum shiftOut amount\"" - } - ], - "id": 3204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 8197, - 8198 - ], - "referencedDeclaration": 8198, - "src": "6846:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 3209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6846:85:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3210, - "nodeType": "ExpressionStatement", - "src": "6846:85:9" - }, - { - "assignments": [ - 3212 - ], - "declarations": [ - { - "constant": false, - "id": 3212, - "name": "absoluteFee", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "6983:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6983:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3221, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3219, - "name": "BIPS_DENOMINATOR", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2919, - "src": "7028:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3215, - "name": "fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2929, - "src": "7018:3:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - ], - "expression": { - "argumentTypes": null, - "id": 3213, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7006:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3214, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 7345, - "src": "7006:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3216, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7006:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3217, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7005:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 7370, - "src": "7005:22:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7005:40:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6983:62:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3225, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8194, - "src": "7066:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7066:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3227, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7078:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3222, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7055:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 2848, - "src": "7055:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7055:31:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3229, - "nodeType": "ExpressionStatement", - "src": "7055:31:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3233, - "name": "feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2927, - "src": "7107:12:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3234, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7121:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3230, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7096:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 3232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 2863, - "src": "7096:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256) external" - } - }, - "id": 3235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7096:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3236, - "nodeType": "ExpressionStatement", - "src": "7096:37:9" - }, - { - "assignments": [ - 3238 - ], - "declarations": [ - { - "constant": false, - "id": 3238, - "name": "receivedValue", - "nodeType": "VariableDeclaration", - "scope": 3257, - "src": "7189:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3237, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7189:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3243, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3241, - "name": "absoluteFee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3212, - "src": "7225:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 3239, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3191, - "src": "7213:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 7311, - "src": "7213:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 3242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7213:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7189:48:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3245, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7264:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 3246, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7269:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3247, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7284:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3248, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3189, - "src": "7297:3:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3244, - "name": "LogShiftOut", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2954, - "src": "7252:11:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,bytes memory)" - } - }, - "id": 3249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7252:49:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3250, - "nodeType": "EmitStatement", - "src": "7247:54:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 3251, - "name": "nextShiftID", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2936, - "src": "7311:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 3252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7326:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7311:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3254, - "nodeType": "ExpressionStatement", - "src": "7311:16:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 3255, - "name": "receivedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "7345:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 3195, - "id": 3256, - "nodeType": "Return", - "src": "7338:20:9" - } - ] - }, - "documentation": "@notice shiftOut burns tokens after taking a fee for the `_feeRecipient`.\n\n /// @param _to The address to receive the unshifted digital asset. The\n format of this address should be of the destination chain.\n For example, when shifting out to Bitcoin, _to should be a\n Bitcoin address.\n @param _amount The amount of the token being shifted out, in its\n smallest value. (e.g. satoshis for BTC)", - "id": 3258, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "shiftOut", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3192, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3189, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6572:16:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3188, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6572:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3191, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6590:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3190, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6590:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6571:35:9" - }, - "returnParameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3194, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3258, - "src": "6623:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3193, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6623:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6622:9:9" - }, - "scope": 3304, - "src": "6554:811:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3275, - "nodeType": "Block", - "src": "7577:80:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3267, - "name": "mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2925, - "src": "7594:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3270, - "name": "_signedMessageHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3260, - "src": "7625:18:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3271, - "name": "_sig", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "7645:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 3268, - "name": "ECDSA", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7105, - "src": "7611:5:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ECDSA_$7105_$", - "typeString": "type(library ECDSA)" - } - }, - "id": 3269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "recover", - "nodeType": "MemberAccess", - "referencedDeclaration": 7088, - "src": "7611:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 3272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7611:39:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7594:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 3266, - "id": 3274, - "nodeType": "Return", - "src": "7587:63:9" - } - ] - }, - "documentation": "@notice verifySignature checks the the provided signature matches the provided\n parameters.", - "id": 3276, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifySignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3260, - "name": "_signedMessageHash", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7503:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3259, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7503:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3262, - "name": "_sig", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7531:17:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 3261, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7531:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7502:47:9" - }, - "returnParameters": { - "id": 3266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3276, - "src": "7571:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 3264, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "7571:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7570:6:9" - }, - "scope": 3304, - "src": "7478:179:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3302, - "nodeType": "Block", - "src": "7864:91:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3292, - "name": "_pHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "7902:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 3293, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3280, - "src": "7910:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3295, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2923, - "src": "7927:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - ], - "id": 3294, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7919:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7919:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3297, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3282, - "src": "7935:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3298, - "name": "_nHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3284, - "src": "7940:6:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 3290, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8181, - "src": "7891:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 3291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7891:10:9", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 3299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7891:56:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 3289, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8188, - "src": "7881:9:9", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 3300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7881:67:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "functionReturnParameters": 3288, - "id": 3301, - "nodeType": "Return", - "src": "7874:74:9" - } - ] - }, - "documentation": "@notice hashForSignature hashes the parameters so that they can be signed.", - "id": 3303, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hashForSignature", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3278, - "name": "_pHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7772:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3277, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7772:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3280, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7788:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3279, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7788:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3282, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7805:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7805:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3284, - "name": "_nHash", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7818:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3283, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7818:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7771:62:9" - }, - "returnParameters": { - "id": 3288, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3287, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3303, - "src": "7855:7:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 3286, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7855:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7854:9:9" - }, - "scope": 3304, - "src": "7746:209:9", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "485:7472:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3305, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3306, - "nodeType": "InheritanceSpecifier", - "src": "8112:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying BTCShifter or ZECShifter\n contracts, but are used to track deployments.", - "fullyImplemented": true, - "id": 3328, - "linearizedBaseContracts": [ - 3328, - 3304, - 7503 - ], - "name": "BTCShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3326, - "nodeType": "Block", - "src": "8335:11:9", - "statements": [] - }, - "documentation": null, - "id": 3327, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3319, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3308, - "src": "8263:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3320, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3310, - "src": "8271:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3321, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3312, - "src": "8286:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3322, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3314, - "src": "8302:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3323, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "8308:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3324, - "modifierName": { - "argumentTypes": null, - "id": 3318, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8255:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8255:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3308, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8138:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3307, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8138:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3310, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8159:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8159:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3312, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8182:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8182:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3314, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8206:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3313, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8206:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3316, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3327, - "src": "8219:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3315, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8219:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8137:109:9" - }, - "returnParameters": { - "id": 3325, - "nodeType": "ParameterList", - "parameters": [], - "src": "8335:0:9" - }, - "scope": 3328, - "src": "8126:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8089:259:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3329, - "name": "Shifter", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 3304, - "src": "8373:7:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Shifter_$3304", - "typeString": "contract Shifter" - } - }, - "id": 3330, - "nodeType": "InheritanceSpecifier", - "src": "8373:7:9" - } - ], - "contractDependencies": [ - 3304, - 7503 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 3352, - "linearizedBaseContracts": [ - 3352, - 3304, - 7503 - ], - "name": "ZECShifter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 3350, - "nodeType": "Block", - "src": "8596:11:9", - "statements": [] - }, - "documentation": null, - "id": 3351, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3343, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3332, - "src": "8524:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - { - "argumentTypes": null, - "id": 3344, - "name": "_feeRecipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3334, - "src": "8532:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3345, - "name": "_mintAuthority", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3336, - "src": "8547:14:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3346, - "name": "_fee", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3338, - "src": "8563:4:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - { - "argumentTypes": null, - "id": 3347, - "name": "_minShiftOutAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3340, - "src": "8569:18:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3348, - "modifierName": { - "argumentTypes": null, - "id": 3342, - "name": "Shifter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3304, - "src": "8516:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Shifter_$3304_$", - "typeString": "type(contract Shifter)" - } - }, - "nodeType": "ModifierInvocation", - "src": "8516:72:9" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3332, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8399:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - }, - "typeName": { - "contractScope": null, - "id": 3331, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "8399:12:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3334, - "name": "_feeRecipient", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8420:21:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3333, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8420:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3336, - "name": "_mintAuthority", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8443:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3335, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8443:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3338, - "name": "_fee", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8467:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - }, - "typeName": { - "id": 3337, - "name": "uint16", - "nodeType": "ElementaryTypeName", - "src": "8467:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint16", - "typeString": "uint16" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3340, - "name": "_minShiftOutAmount", - "nodeType": "VariableDeclaration", - "scope": 3351, - "src": "8480:26:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8480:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8398:109:9" - }, - "returnParameters": { - "id": 3349, - "nodeType": "ParameterList", - "parameters": [], - "src": "8596:0:9" - }, - "scope": 3352, - "src": "8387:220:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 3353, - "src": "8350:259:9" - } - ], - "src": "0:8609:9" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -12286,89 +534,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T06:30:23.262Z", - "devdoc": { - "methods": { - "isOwner()": { - "details": "Returns true if the caller is the current owner." - }, - "owner()": { - "details": "Returns the address of the current owner." - }, - "renounceOwnership()": { - "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "params": { - "_amount": "The amount of the token being shifted int, in its smallest value. (e.g. satoshis for BTC)", - "_nHash": "(nonce hash) The hash of the nonce, amount and pHash.", - "_pHash": "(payload hash) The hash of the payload associated with the shift.", - "_sig": "The signature of the hash of the following values: (pHash, amount, msg.sender, nHash), signed by the mintAuthority." - } - }, - "shiftOut(bytes,uint256)": { - "params": { - "_amount": "The amount of the token being shifted out, in its smallest value. (e.g. satoshis for BTC)", - "_to": "The address to receive the unshifted digital asset. The format of this address should be of the destination chain. For example, when shifting out to Bitcoin, _to should be a Bitcoin address." - } - }, - "transferOwnership(address)": { - "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner." - }, - "updateFee(uint16)": { - "params": { - "_nextFee": "The new fee for minting and burning." - } - }, - "updateFeeRecipient(address)": { - "params": { - "_nextFeeRecipient": "The address to start paying fees to." - } - }, - "updateMinimumShiftOutAmount(uint256)": { - "params": { - "_minShiftOutAmount": "The new min shiftOut amount." - } - }, - "updateMintAuthority(address)": { - "params": { - "_nextMintAuthority": "The address to start paying fees to." - } - } - } - }, - "userdoc": { - "methods": { - "claimTokenOwnership()": { - "notice": "Claims ownership of the token passed in to the constructor. `transferStoreOwnership` must have previously been called. Anyone can call this function." - }, - "hashForSignature(bytes32,uint256,address,bytes32)": { - "notice": "hashForSignature hashes the parameters so that they can be signed." - }, - "shiftIn(bytes32,uint256,bytes32,bytes)": { - "notice": "shiftIn mints tokens after taking a fee for the `_feeRecipient`. " - }, - "shiftOut(bytes,uint256)": { - "notice": "shiftOut burns tokens after taking a fee for the `_feeRecipient`. " - }, - "transferTokenOwnership(address)": { - "notice": "Allow the owner to update the owner of the ERC20Shifted token." - }, - "updateFee(uint16)": { - "notice": "Allow the owner to update the fee. " - }, - "updateFeeRecipient(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "updateMinimumShiftOutAmount(uint256)": { - "notice": "Allow the owner to update the minimum shiftOut amount. " - }, - "updateMintAuthority(address)": { - "notice": "Allow the owner to update the fee recipient. " - }, - "verifySignature(bytes32,bytes)": { - "notice": "verifySignature checks the the provided signature matches the provided parameters." - } - } - } + "updatedAt": "2019-08-02T06:30:23.262Z" } \ No newline at end of file diff --git a/build/testnet/zBTC.json b/build/testnet/zBTC.json index b6648cd6..15209853 100644 --- a/build/testnet/zBTC.json +++ b/build/testnet/zBTC.json @@ -376,1759 +376,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"_from\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"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\":\"The following are not necessary for deploying zBTC or zZEC contracts, but are used to track deployments.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":\"zBTC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x600b60808181527f536869667465642042544300000000000000000000000000000000000000000060a0908152610100604052600460c09081527f7a4254430000000000000000000000000000000000000000000000000000000060e0529192600891849184918491610074916003916100f4565b5081516100889060049060208501906100f4565b506005805460ff90921660ff199092169190911790555050600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505061018f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013557805160ff1916838001178555610162565b82800160010185558215610162579182015b82811115610162578251825591602001919060010190610147565b5061016e929150610172565b5090565b61018c91905b8082111561016e5760008155600101610178565b90565b610e978061019e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200936e35597cd3598468078c9b4611bc295a148e92ab21f78e3f6b82205f2362a0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a723058200936e35597cd3598468078c9b4611bc295a148e92ab21f78e3f6b82205f2362a0029", - "sourceMap": "511:123:7:-;1014:58;511:123;;;;;;;;;1014:58;511:123;;;;;;;;;1014:58;;1067:1;;1014:58;;511:123;;1067:1;;504:12:39;;:5;;:12;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;;;;;-1:-1:-1;;552:20:39;;;;;;;;;-1:-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;-1:-1:-1;;;;;595:6:13;;;;;552:9:39;;562:40:13;;552:9:39;;562:40:13;511:123:7;;;1014:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1014:58:7;;;-1:-1:-1;1014:58:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "1014:58:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1014:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:37;;;;;;;;;;;;;;;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3702:203:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:37;;;;;;;;:::i;747:97:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;747:97:7;;;;;;;;:::i;:::-;;2166:177:13;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1688:137:13:-;;;:::i;672:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;;:::i;838:85:39:-;;;:::i;640:101:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;640:101:7;;;;;;;;:::i;4392:213:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:37;;;;;;;;:::i;1972:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:37;;;;;;;;:::i;2183:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;3702:203:37:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;747:97:7:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;818:19:7;824:3;829:7;818:5;:19::i;:::-;747:97;;:::o;2166:177:13:-;1091:13;;;;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;2250:6;;2229:43;;2258:13;;;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;2229:43;;2250:6;;2229:43;2289:13;;;2280:6;:22;;-1:-1:-1;;;;;;2280:22:13;-1:-1:-1;;;;;2289:13:13;;;;2280:22;;;-1:-1:-1;;;;;;2310:26:13;;;2166:177::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;;;;;;;;;;1661:108::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;838:85:39:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;640:101:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;713:21:7;719:5;726:7;713:5;:21::i;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;2045:24:13;;;;;-1:-1:-1;;;;;;2045:24:13;;;;;;;;;1975:101::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;-1:-1:-1;;;;;5838:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;;6584:9;;6649:36;;;;;;;;;;;6392:300;;:::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\nimport \"../libraries/Claimable.sol\";\n\n/// @notice ERC20Shifted represents a digital asset that has been bridged on to\n/// the Ethereum ledger. It exposes mint and burn functions that can only be\n/// called by it's associated Shifter.\ncontract ERC20Shifted is ERC20, ERC20Detailed, Claimable {\n\n /* solium-disable-next-line no-empty-blocks */\n constructor(string memory _name, string memory _symbol, uint8 _decimals) public ERC20Detailed(_name, _symbol, _decimals) {}\n\n function burn(address _from, uint256 _amount) public onlyOwner {\n _burn(_from, _amount);\n }\n\n function mint(address _to, uint256 _amount) public onlyOwner {\n _mint(_to, _amount);\n }\n}\n\n/// @dev The following are not necessary for deploying zBTC or zZEC contracts,\n/// but are used to track deployments.\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zBTC is ERC20Shifted(\"Shifted BTC\", \"zBTC\", 8) {}\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zZEC is ERC20Shifted(\"Shifted ZEC\", \"zZEC\", 8) {}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7901, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7990, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4315, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7900, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7900", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7989, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7989", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4314, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4314", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7989, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7989_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7829, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7901, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7990, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4315, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7900, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7900", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7989, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7989", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4314, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4314", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7989, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7989_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7829, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2207,68 +455,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T06:30:23.255Z", - "devdoc": { - "details": "The following are not necessary for deploying zBTC or zZEC contracts, but are used to track deployments.", - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } + "updatedAt": "2019-08-02T06:30:23.255Z" } \ No newline at end of file diff --git a/build/testnet/zZEC.json b/build/testnet/zZEC.json index b2e8a520..a949204c 100644 --- a/build/testnet/zZEC.json +++ b/build/testnet/zZEC.json @@ -376,1759 +376,7 @@ "type": "event" } ], - "metadata": "{\"compiler\":{\"version\":\"0.5.8+commit.23d335f2\"},\"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\":\"sender\",\"type\":\"address\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"claimOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"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\":\"_from\",\"type\":\"address\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"amount\",\"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\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"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\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"claimOwnership()\":{\"details\":\"Allows the pendingOwner address to finalize the transfer.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"return\":\"true if `msg.sender` is the owner of the contract.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"owner()\":{\"return\":\"the address of the owner.\"},\"renounceOwnership()\":{\"details\":\"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Allows the current owner to set the pendingOwner address.\",\"params\":{\"newOwner\":\"The address to transfer ownership to.\"}}}},\"userdoc\":{\"methods\":{\"renounceOwnership()\":{\"notice\":\"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":\"zZEC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol\":{\"keccak256\":\"0xb2659b5b673717451337791caa1059c3a65466ef9d11546d438669f48b6130ec\",\"urls\":[\"bzzr://83034ec45854ffbbfc8046171f7147dc9debb8f673f8fd3631b8cbed9f47e0c0\"]},\"/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol\":{\"keccak256\":\"0xc018debe94de6dd9df7a76d199885798340738e2271b4affe17fb53c9234ab0a\",\"urls\":[\"bzzr://930431f7fb09faa65dfa2c171575d906d894cee394def442a938b1be7b61023e\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzzr://1604f5b6d6e916c154efd8c6720cda069e5ba32dfa0a9dedf2b42e5b02d07f89\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzzr://07fb42206812a17c1f71e548cfa5cec6f9aa1ae0ca5df870718ca4aa9759d1a5\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzzr://f280f38d5ab6e1b89fd898ccd3901054a56572c141d91d30302e2db1db4cc6ff\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzzr://aa8b45b57edafc3d67bc5d916327ea16807fae33f753ca163ae0c4061b789766\"]}},\"version\":1}", - "bytecode": "0x600b60808181527f53686966746564205a454300000000000000000000000000000000000000000060a0908152610100604052600460c09081527f7a5a45430000000000000000000000000000000000000000000000000000000060e0529192600891849184918491610074916003916100f4565b5081516100889060049060208501906100f4565b506005805460ff90921660ff199092169190911790555050600680546001600160a01b0319163317908190556040516001600160a01b0391909116906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350505061018f565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061013557805160ff1916838001178555610162565b82800160010185558215610162579182015b82811115610162578251825591602001919060010190610147565b5061016e929150610172565b5090565b61018c91905b8082111561016e5760008155600101610178565b90565b610e978061019e6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820912683b49a012bea331fd46fb732eb99158a49d9e9f5426f9f39204351b3ec2a0029", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101165760003560e01c8063715018a6116100a25780639dc29fac116100715780639dc29fac1461030a578063a457c2d714610336578063a9059cbb14610362578063dd62ed3e1461038e578063f2fde38b146103bc57610116565b8063715018a6146102ce5780638da5cb5b146102d65780638f32d59b146102fa57806395d89b411461030257610116565b8063313ce567116100e9578063313ce56714610228578063395093511461024657806340c10f19146102725780634e71e0c8146102a057806370a08231146102a857610116565b806306fdde031461011b578063095ea7b31461019857806318160ddd146101d857806323b872dd146101f2575b600080fd5b6101236103e2565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101c4600480360360408110156101ae57600080fd5b506001600160a01b038135169060200135610478565b604080519115158252519081900360200190f35b6101e061048e565b60408051918252519081900360200190f35b6101c46004803603606081101561020857600080fd5b506001600160a01b03813581169160208101359091169060400135610494565b6102306104eb565b6040805160ff9092168252519081900360200190f35b6101c46004803603604081101561025c57600080fd5b506001600160a01b0381351690602001356104f4565b61029e6004803603604081101561028857600080fd5b506001600160a01b038135169060200135610530565b005b61029e610588565b6101e0600480360360208110156102be57600080fd5b50356001600160a01b0316610665565b61029e610680565b6102de610714565b604080516001600160a01b039092168252519081900360200190f35b6101c4610723565b610123610734565b61029e6004803603604081101561032057600080fd5b506001600160a01b038135169060200135610795565b6101c46004803603604081101561034c57600080fd5b506001600160a01b0381351690602001356107e9565b6101c46004803603604081101561037857600080fd5b506001600160a01b038135169060200135610825565b6101e0600480360360408110156103a457600080fd5b506001600160a01b0381358116916020013516610832565b61029e600480360360208110156103d257600080fd5b50356001600160a01b031661085d565b60038054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b820191906000526020600020905b81548152906001019060200180831161045157829003601f168201915b5050505050905090565b60006104853384846108cf565b50600192915050565b60025490565b60006104a18484846109c1565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546104e19186916104dc908663ffffffff610b0916565b6108cf565b5060019392505050565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b6916565b610538610723565b61057a5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610bcd565b5050565b60055461010090046001600160a01b031633146105ef5760408051600160e51b62461bcd02815260206004820152601f60248201527f63616c6c6572206973206e6f74207468652070656e64696e67206f776e657200604482015290519081900360640190fd5b6005546006546040516101009092046001600160a01b03908116929116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a360058054600680546001600160a01b0319166001600160a01b03610100840416179055610100600160a81b0319169055565b6001600160a01b031660009081526020819052604090205490565b610688610723565b6106ca5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6006546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600680546001600160a01b0319169055565b6006546001600160a01b031690565b6006546001600160a01b0316331490565b60048054604080516020601f600260001961010060018816150201909516949094049384018190048102820181019092528281526060939092909183018282801561046e5780601f106104435761010080835404028352916020019161046e565b61079d610723565b6107df5760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b6105848282610cc0565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916104859185906104dc908663ffffffff610b0916565b60006104853384846109c1565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610865610723565b6108a75760408051600160e51b62461bcd0281526020600482015260176024820152600080516020610de2833981519152604482015290519081900360640190fd5b600580546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b03831661091757604051600160e51b62461bcd028152600401808060200182810382526024815260200180610e486024913960400191505060405180910390fd5b6001600160a01b03821661095f57604051600160e51b62461bcd028152600401808060200182810382526022815260200180610dc06022913960400191505060405180910390fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b038316610a0957604051600160e51b62461bcd028152600401808060200182810382526025815260200180610e236025913960400191505060405180910390fd5b6001600160a01b038216610a5157604051600160e51b62461bcd028152600401808060200182810382526023815260200180610d9d6023913960400191505060405180910390fd5b6001600160a01b038316600090815260208190526040902054610a7a908263ffffffff610b0916565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610aaf908263ffffffff610b6916565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082821115610b635760408051600160e51b62461bcd02815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b600082820183811015610bc65760408051600160e51b62461bcd02815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6001600160a01b038216610c2b5760408051600160e51b62461bcd02815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254610c3e908263ffffffff610b6916565b6002556001600160a01b038216600090815260208190526040902054610c6a908263ffffffff610b6916565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6001600160a01b038216610d0857604051600160e51b62461bcd028152600401808060200182810382526021815260200180610e026021913960400191505060405180910390fd5b600254610d1b908263ffffffff610b0916565b6002556001600160a01b038216600090815260208190526040902054610d47908263ffffffff610b0916565b6001600160a01b038316600081815260208181526040808320949094558351858152935191937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929081900390910190a3505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737363616c6c6572206973206e6f7420746865206f776e657200000000000000000045524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373a165627a7a72305820912683b49a012bea331fd46fb732eb99158a49d9e9f5426f9f39204351b3ec2a0029", - "sourceMap": "511:123:7:-;1121:58;511:123;;;;;;;;;1121:58;511:123;;;;;;;;;1121:58;;1174:1;;1121:58;;511:123;;1174:1;;504:12:39;;:5;;:12;:::i;:::-;-1:-1:-1;526:16:39;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;552:9:39;:20;;;;;;-1:-1:-1;;552:20:39;;;;;;;;;-1:-1:-1;;528:6:13;:19;;-1:-1:-1;;;;;;528:19:13;537:10;528:19;;;;;562:40;;-1:-1:-1;;;;;595:6:13;;;;;552:9:39;;562:40:13;;552:9:39;;562:40:13;511:123:7;;;1121:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1121:58:7;;;-1:-1:-1;1121:58:7;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "1121:58:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1121:58:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81:39;;;:::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;644:81:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:37;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:37;;;;;;;;;;;;;;;;;:::i;1478:81:39:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3702:203:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:37;;;;;;;;:::i;747:97:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;747:97:7;;;;;;;;:::i;:::-;;2166:177:13;;;:::i;1661:108:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:37;-1:-1:-1;;;;;1661:108:37;;:::i;1688:137:13:-;;;:::i;672:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;672:77:13;;;;;;;;;;;;;;1244:90;;;:::i;838:85:39:-;;;:::i;640:101:7:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;640:101:7;;;;;;;;:::i;4392:213:37:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:37;;;;;;;;:::i;1972:153::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:37;;;;;;;;:::i;2183:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:37;;;;;;;;;;:::i;1975:101:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1975:101:13;-1:-1:-1;;;;;1975:101:13;;:::i;644:81:39:-;713:5;706:12;;;;;;;;-1:-1:-1;;706:12:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;681:13;;706:12;;713:5;;706:12;;713:5;706:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;644:81;:::o;2453:145:37:-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:37;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:37;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:37;3055:252;;;;;:::o;1478:81:39:-;1543:9;;;;1478:81;:::o;3702:203:37:-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:37;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;747:97:7:-;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;818:19:7;824:3;829:7;818:5;:19::i;:::-;747:97;;:::o;2166:177:13:-;1091:13;;;;;-1:-1:-1;;;;;1091:13:13;1077:10;:27;1069:71;;;;;-1:-1:-1;;;;;1069:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2258:13;;2250:6;;2229:43;;2258:13;;;;-1:-1:-1;;;;;2258:13:13;;;;2250:6;;;2229:43;;2250:6;;2229:43;2289:13;;;2280:6;:22;;-1:-1:-1;;;;;;2280:22:13;-1:-1:-1;;;;;2289:13:13;;;;2280:22;;;-1:-1:-1;;;;;;2310:26:13;;;2166:177::o;1661:108:37:-;-1:-1:-1;;;;;1744:18:37;1718:7;1744:18;;;;;;;;;;;;1661:108::o;1688:137:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;1770:6;;1749:40;;1786:1;;-1:-1:-1;;;;;1770:6:13;;1749:40;;1786:1;;1749:40;1799:6;:19;;-1:-1:-1;;;;;;1799:19:13;;;1688:137::o;672:77::-;736:6;;-1:-1:-1;;;;;736:6:13;672:77;:::o;1244:90::-;1321:6;;-1:-1:-1;;;;;1321:6:13;1307:10;:20;;1244:90::o;838:85:39:-;909:7;902:14;;;;;;;;-1:-1:-1;;902:14:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;877:13;;902:14;;909:7;;902:14;;909:7;902:14;;;;;;;;;;;;;;;;;;;;;;;;640:101:7;876:9:13;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;713:21:7;719:5;726:7;713:5;:21::i;4392:213:37:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:37;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2183:132::-;-1:-1:-1;;;;;2281:18:37;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;1975:101:13:-;876:9;:7;:9::i;:::-;868:45;;;;;-1:-1:-1;;;;;868:45:13;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;868:45:13;;;;;;;;;;;;;;;2045:13;:24;;-1:-1:-1;;;;;2045:24:13;;;;;-1:-1:-1;;;;;;2045:24:13;;;;;;;;;1975:101::o;7117:329:37:-;-1:-1:-1;;;;;7209:19:37;;7201:68;;;;-1:-1:-1;;;;;7201:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:37;;7279:68;;;;-1:-1:-1;;;;;7279:68:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:37;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:37;;5168:70;;;;-1:-1:-1;;;;;5168:70:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:37;;5248:71;;;;-1:-1:-1;;;;;5248:71:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:37;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:37;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:37;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:35:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;;;1351:49:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:35;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;;;938:46:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:35:o;5771:302:37:-;-1:-1:-1;;;;;5846:21:37;;5838:65;;;;;-1:-1:-1;;;;;5838:65:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:12;;:24;;5946:6;5929:24;:16;:24;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:37;;:9;:18;;;;;;;;;;;:30;;6007:6;5984:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;5963:18:37;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;6392:300::-;-1:-1:-1;;;;;6466:21:37;;6458:67;;;;-1:-1:-1;;;;;6458:67:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6551:12;;:23;;6568:5;6551:23;:16;:23;:::i;:::-;6536:12;:38;-1:-1:-1;;;;;6605:18:37;;:9;:18;;;;;;;;;;;:29;;6628:5;6605:29;:22;:29;:::i;:::-;-1:-1:-1;;;;;6584:18:37;;:9;:18;;;;;;;;;;;:50;;;;6649:36;;;;;;;6584:9;;6649:36;;;;;;;;;;;6392:300;;:::o", - "source": "pragma solidity ^0.5.8;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\";\n\nimport \"../libraries/Claimable.sol\";\n\n/// @notice ERC20Shifted represents a digital asset that has been bridged on to\n/// the Ethereum ledger. It exposes mint and burn functions that can only be\n/// called by it's associated Shifter.\ncontract ERC20Shifted is ERC20, ERC20Detailed, Claimable {\n\n /* solium-disable-next-line no-empty-blocks */\n constructor(string memory _name, string memory _symbol, uint8 _decimals) public ERC20Detailed(_name, _symbol, _decimals) {}\n\n function burn(address _from, uint256 _amount) public onlyOwner {\n _burn(_from, _amount);\n }\n\n function mint(address _to, uint256 _amount) public onlyOwner {\n _mint(_to, _amount);\n }\n}\n\n/// @dev The following are not necessary for deploying zBTC or zZEC contracts,\n/// but are used to track deployments.\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zBTC is ERC20Shifted(\"Shifted BTC\", \"zBTC\", 8) {}\n\n/* solium-disable-next-line no-empty-blocks */\ncontract zZEC is ERC20Shifted(\"Shifted ZEC\", \"zZEC\", 8) {}\n", "sourcePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "ast": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7901, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7990, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4315, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7900, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7900", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7989, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7989", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4314, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4314", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7989, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7989_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7829, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, - "legacyAST": { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/Shifter/ERC20Shifted.sol", - "exportedSymbols": { - "ERC20Shifted": [ - 2864 - ], - "zBTC": [ - 2870 - ], - "zZEC": [ - 2876 - ] - }, - "id": 2877, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2809, - "literals": [ - "solidity", - "^", - "0.5", - ".8" - ], - "nodeType": "PragmaDirective", - "src": "0:23:7" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 2810, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7901, - "src": "25:63:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol", - "id": 2811, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 7990, - "src": "89:71:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/home/noah/github/renproject/darknode-sol/contracts/libraries/Claimable.sol", - "file": "../libraries/Claimable.sol", - "id": 2812, - "nodeType": "ImportDirective", - "scope": 2877, - "sourceUnit": 4315, - "src": "162:36:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2813, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7900, - "src": "421:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$7900", - "typeString": "contract ERC20" - } - }, - "id": 2814, - "nodeType": "InheritanceSpecifier", - "src": "421:5:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2815, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7989, - "src": "428:13:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$7989", - "typeString": "contract ERC20Detailed" - } - }, - "id": 2816, - "nodeType": "InheritanceSpecifier", - "src": "428:13:7" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 2817, - "name": "Claimable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4314, - "src": "443:9:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Claimable_$4314", - "typeString": "contract Claimable" - } - }, - "id": 2818, - "nodeType": "InheritanceSpecifier", - "src": "443:9:7" - } - ], - "contractDependencies": [ - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@notice ERC20Shifted represents a digital asset that has been bridged on to\n the Ethereum ledger. It exposes mint and burn functions that can only be\n called by it's associated Shifter.", - "fullyImplemented": true, - "id": 2864, - "linearizedBaseContracts": [ - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "ERC20Shifted", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 2832, - "nodeType": "Block", - "src": "632:2:7", - "statements": [] - }, - "documentation": null, - "id": 2833, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2827, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2820, - "src": "605:5:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2828, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2822, - "src": "612:7:7", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2829, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2824, - "src": "621:9:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "id": 2830, - "modifierName": { - "argumentTypes": null, - "id": 2826, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7989, - "src": "591:13:7", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$7989_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "591:40:7" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2825, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2820, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "523:19:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2819, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "523:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2822, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "544:21:7", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2821, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "544:6:7", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2824, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 2833, - "src": "567:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2823, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "567:5:7", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "522:61:7" - }, - "returnParameters": { - "id": 2831, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:7" - }, - "scope": 2864, - "src": "511:123:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2847, - "nodeType": "Block", - "src": "703:38:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2843, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2835, - "src": "719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2844, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2837, - "src": "726:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2842, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7829, - "src": "713:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "713:21:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2846, - "nodeType": "ExpressionStatement", - "src": "713:21:7" - } - ] - }, - "documentation": null, - "id": 2848, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2840, - "modifierName": { - "argumentTypes": null, - "id": 2839, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "693:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "693:9:7" - } - ], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2838, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2835, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "654:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2834, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "654:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2837, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2848, - "src": "669:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "669:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "653:32:7" - }, - "returnParameters": { - "id": 2841, - "nodeType": "ParameterList", - "parameters": [], - "src": "703:0:7" - }, - "scope": 2864, - "src": "640:101:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2862, - "nodeType": "Block", - "src": "808:36:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2850, - "src": "824:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2859, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2852, - "src": "829:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2857, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "818:5:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 2860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "818:19:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2861, - "nodeType": "ExpressionStatement", - "src": "818:19:7" - } - ] - }, - "documentation": null, - "id": 2863, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 2855, - "modifierName": { - "argumentTypes": null, - "id": 2854, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4238, - "src": "798:9:7", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "798:9:7" - } - ], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2850, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "761:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2849, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "761:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2852, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 2863, - "src": "774:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "774:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "760:30:7" - }, - "returnParameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [], - "src": "808:0:7" - }, - "scope": 2864, - "src": "747:97:7", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 2877, - "src": "396:450:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "5368696674656420425443", - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1044:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b7cdfe4720efbe068c2fae0dfd573b6870888087097988833a5444e271135e6", - "typeString": "literal_string \"Shifted BTC\"" - }, - "value": "Shifted BTC" - }, - { - "argumentTypes": null, - "hexValue": "7a425443", - "id": 2867, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1059:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ed741460db96bfd5490e8b3fec6c7aacf0938024b0827570bed736021bc82885", - "typeString": "literal_string \"zBTC\"" - }, - "value": "zBTC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1067:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2865, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1031:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2869, - "nodeType": "InheritanceSpecifier", - "src": "1031:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": "@dev The following are not necessary for deploying zBTC or zZEC contracts,\n but are used to track deployments.", - "fullyImplemented": true, - "id": 2870, - "linearizedBaseContracts": [ - 2870, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zBTC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1014:58:7" - }, - { - "baseContracts": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "53686966746564205a4543", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1151:13:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ba2f51eb5bfed8e20d802c70c38112c4bbd8840b74f9577079b1e33b8194882c", - "typeString": "literal_string \"Shifted ZEC\"" - }, - "value": "Shifted ZEC" - }, - { - "argumentTypes": null, - "hexValue": "7a5a4543", - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1166:6:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_410c024cae6bc7abf90472631cd541f8a156c45e8cc63e7a255a752e9bcacc76", - "typeString": "literal_string \"zZEC\"" - }, - "value": "zZEC" - }, - { - "argumentTypes": null, - "hexValue": "38", - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1174:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_8_by_1", - "typeString": "int_const 8" - }, - "value": "8" - } - ], - "baseName": { - "contractScope": null, - "id": 2871, - "name": "ERC20Shifted", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2864, - "src": "1138:12:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Shifted_$2864", - "typeString": "contract ERC20Shifted" - } - }, - "id": 2875, - "nodeType": "InheritanceSpecifier", - "src": "1138:38:7" - } - ], - "contractDependencies": [ - 2864, - 4314, - 7900, - 7989, - 8160 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2876, - "linearizedBaseContracts": [ - 2876, - 2864, - 4314, - 7989, - 7900, - 8160 - ], - "name": "zZEC", - "nodeType": "ContractDefinition", - "nodes": [], - "scope": 2877, - "src": "1121:58:7" - } - ], - "src": "0:1180:7" - }, "compiler": { "name": "solc", "version": "0.5.8+commit.23d335f2.Emscripten.clang" @@ -2207,67 +455,5 @@ } }, "schemaVersion": "3.0.11", - "updatedAt": "2019-08-02T06:30:23.274Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "See `IERC20.allowance`." - }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "balanceOf(address)": { - "details": "See `IERC20.balanceOf`." - }, - "claimOwnership()": { - "details": "Allows the pendingOwner address to finalize the transfer." - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`." - }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "name()": { - "details": "Returns the name of the token." - }, - "owner()": { - "return": "the address of the owner." - }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the name." - }, - "totalSupply()": { - "details": "See `IERC20.totalSupply`." - }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to set the pendingOwner address.", - "params": { - "newOwner": "The address to transfer ownership to." - } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } + "updatedAt": "2019-08-02T06:30:23.274Z" } \ No newline at end of file